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

65 lines
1.4 KiB
Plaintext
Raw Permalink Normal View History

2025-01-20 21:25:33 +08:00
/* file name: bubbleSort.c */
/* <20><><EFBFBD>w<EFBFBD>Ƨ<EFBFBD> */
#include <stdio.h>
void bubbleSort(int[], int);
int main(void)
{
int data[20];
int size = 0, i;
printf("\n<>п<EFBFBD><D0BF>J<EFBFBD><4A><EFBFBD><EFBFBD>(<28><><EFBFBD>J 0 <20><><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD>): ");
/* <20>n<EFBFBD>D<EFBFBD><44><EFBFBD>J<EFBFBD>Ʀr<C6A6><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>Ʀr<C6A6><72> 0 */
do {
scanf("%d", &data[size]);
} while(data[size++] != 0);
printf("<22><><EFBFBD>ƧǪ<C6A7><C7AA><EFBFBD><EFBFBD><EFBFBD> : ");
for (i = 0; i < size-1; i++)
printf("%d ", data[i]);
printf("\n");
for (i = 0; i < 50; i++)
printf("-");
printf("\n");
bubbleSort(data, --size); /* --size<7A>Ω<EFBFBD><CEA9>N<EFBFBD><4E><EFBFBD>Ƭ<EFBFBD><C6AC>s<EFBFBD>̱ư<CCB1> */
for (i = 0; i < 50; i++)
printf("-");
printf("\n<>Ѥp<D1A4>ܤj<DCA4>ƧǪ<C6A7><C7AA><EFBFBD><EFBFBD><EFBFBD> : ");
for (i = 0; i < size; i++)
printf("%d ", data[i]);
printf("\n");
return 0;
}
void bubbleSort(int data[], int size)
{
int i, j, k, temp, flag;
/* <20><><EFBFBD><EFBFBD><EFBFBD>ƨ<EFBFBD><C6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>N<EFBFBD>p<EFBFBD><70><EFBFBD>m<EFBFBD><6D><EFBFBD>e */
for (i=0; i<size-1; i++) {
flag=0;
printf("#%d pass: \n", i+1);
for (j=0; j<size-i-1; j++) {
if (data[j] > data[j+1]) {
flag=1;
temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
}
//<2F>L<EFBFBD>X<EFBFBD>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf(" #%d compare: ", j+1);
for (k = 0; k < size-i; k++)
printf(" %d ", data[k]);
printf("\n");
}
/* <20>Y<EFBFBD>b<EFBFBD>Y<EFBFBD>@pass<73><73><EFBFBD>S<EFBFBD><53><EFBFBD><EFBFBD><E6B4AB><EFBFBD>ܡA<DCA1>h<EFBFBD><68><EFBFBD><EFBFBD> */
if (flag != 1)
break;
printf("\n");
}
}