64 lines
1.4 KiB
Plaintext
64 lines
1.4 KiB
Plaintext
|
/* file name: selectionSort.c */
|
|||
|
/* <20><><EFBFBD>ܱƧ<DCB1> */
|
|||
|
|
|||
|
#include <stdio.h>
|
|||
|
#include <stdlib.h>
|
|||
|
void select_sort(int[], int);
|
|||
|
void printDashLine(void);
|
|||
|
|
|||
|
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");
|
|||
|
|
|||
|
printDashLine();
|
|||
|
select_sort(data, --size);
|
|||
|
printDashLine();
|
|||
|
|
|||
|
printf("<22>Ѥp<D1A4>ܤj<DCA4>Ƨǫ᪺<C7AB><E1AABA><EFBFBD><EFBFBD>: ");
|
|||
|
for (i = 0; i < size; i++)
|
|||
|
printf("%d ", data[i]);
|
|||
|
printf("\n");
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
void select_sort(int data[], int size)
|
|||
|
{
|
|||
|
int base, compare, min, temp, i;
|
|||
|
for (base = 0; base < size-1; base++) {
|
|||
|
/* <20>N<EFBFBD>ثe<D8AB><65><EFBFBD>ƻP<C6BB>᭱<EFBFBD><E1ADB1><EFBFBD>Ƥ<EFBFBD><C6A4>̤p<CCA4><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
min = base;
|
|||
|
for (compare = base+1; compare < size; compare++)
|
|||
|
if(data[compare] < data[min])
|
|||
|
min = compare;
|
|||
|
printf("#%d PASS <20><><EFBFBD><EFBFBD> %d\n", base+1, data[min]);
|
|||
|
/* <20>洫<EFBFBD><E6B4AB><EFBFBD>ʧ@ */
|
|||
|
temp = data[min];
|
|||
|
data[min] = data[base];
|
|||
|
data[base] = temp;
|
|||
|
|
|||
|
for (i = 0; i < size; i++)
|
|||
|
printf(" %d ", data[i]);
|
|||
|
printf("\n\n");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void printDashLine()
|
|||
|
{
|
|||
|
for (int i = 0; i < 40; i++)
|
|||
|
printf("-");
|
|||
|
printf("\n");
|
|||
|
}
|