選擇排序實例程序(C語言)
在C語言中實現選擇排序的程序,詳細的代碼如下:
#include <stdio.h>
#include <stdbool.h>
#define MAX 7
int intArray[MAX] = {4,6,3,2,1,9,7};
void printline(int count){
int i;
for(i = 0;i <count-1;i++){
printf("=");
}
printf("=\n");
}
void display(){
int i;
printf("[");
// navigate through all items
for(i = 0;i<MAX;i++){
printf("%d ", intArray[i]);
}
printf("]\n");
}
void selectionSort(){
int indexMin,i,j;
// loop through all numbers
for(i = 0; i < MAX-1; i++){
// set current element as minimum
indexMin = i;
// check the element to be minimum
for(j = i+1;j<MAX;j++){
if(intArray\[j\] < intArray\[indexMin\]){
indexMin = j;
}
}
if(indexMin != i){
printf("Items swapped: \[ %d, %d \]\\n" , intArray\[i\], intArray\[indexMin\]);
// swap the numbers
int temp = intArray\[indexMin\];
intArray\[indexMin\] = intArray\[i\];
intArray\[i\] = temp;
}
printf("Iteration %d#:",(i+1));
display();
}
}
main(){
printf("Input Array: ");
display();
printline(50);
selectionSort();
printf("Output Array: ");
display();
printline(50);
}
如果我們編譯並運行上述程序,那麼這將產生以下結果 -
Input Array: [4, 6, 3, 2, 1, 9, 7]
Items swapped: \[ 4, 1 \]
iteration 1#: [1, 6, 3, 2, 4, 9, 7]
Items swapped: [ 6, 2 ]
iteration 2#: [1, 2, 3, 6, 4, 9, 7]
iteration 3#: [1, 2, 3, 6, 4, 9, 7]
Items swapped: [ 6, 4 ]
iteration 4#: [1, 2, 3, 4, 6, 9, 7]
iteration 5#: [1, 2, 3, 4, 6, 9, 7]
Items swapped: [ 9, 7 ]
iteration 6#: [1, 2, 3, 4, 6, 7, 9]
Output Array: [1, 2, 3, 4, 6, 7, 9]
==================================================