選擇排序實例程序(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]
==================================================