65 lines
1.4 KiB
Plaintext
65 lines
1.4 KiB
Plaintext
|
/* 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");
|
|||
|
|
|||
|
}
|
|||
|
}
|