Data_Structure/資料結構光碟檔/CH13/shellSort.c.txt

56 lines
1.2 KiB
Plaintext
Raw Normal View History

2025-01-20 21:25:33 +08:00
/* file name: shellSort.c*/
/* <20>¦ձƧ<D5B1> */
#include <stdio.h>
#include <stdlib.h>
void printDashLine(void);
int main()
{
int data[11] = {0, 75, 23, 98, 44, 57, 12, 29, 64, 38, 82};
int i, j, k, incr, temp;
printf("\n<< Shell sort >>\n");
printf("\n<><6E><EFBFBD>Ƨǫe<C7AB><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ");
for (i = 1; i <= 10; i++)
printf("%d ", data[i]);
printf("\n");
printDashLine();
incr = 10/2;
while (incr > 0) {
for (i = incr+1; i <= 10; i++) {
j = i - incr;
while (j > 0)
if (data[j] > data[j+incr]) {
/* <20>j<EFBFBD>p<EFBFBD><70><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD><EFBFBD>h<EFBFBD>洫 */
temp = data[j];
data[j] = data[j+incr];
data[j+incr] = temp;
j = j - incr;
}
else
j = 0;
}
printf("\nProcessing : ");
for(k = 1; k <= 10; k++)
printf("%d ", data[k]);
incr = incr/2;
}
printf("\n");
printDashLine();
printf("<22>Ѥp<D1A4>ܤj<DCA4>Ƨǫ᪺<C7AB><E1AABA><EFBFBD><EFBFBD>: ");
for (i = 1; i <= 10; i++)
printf("%d ", data[i]);
printf("\n");
return 0;
}
void printDashLine()
{
for(int i = 0; i < 58; i++)
printf("-");
printf("\n");
}