新手学习数据结构与算法---直接选择排序

直接选择排序,这个比较好理解。

 

  
  
  
  
  1. //直接选择排序  
  2. #include <stdio.h>  
  3.  
  4. #define MAX 10  
  5.  
  6. void SelectSort(int arr[])  
  7. {  
  8.     int i,j,k,n;  
  9.     for(i = 0; i < MAX - 1; i++)     //循环遍历整个数组找到最小的那个数   
  10.     {  
  11.         k = i;               //k用来记录最小的那个数的下标   
  12.         for(j = i + 1; j < MAX; j++)     //循环与后面的数进行比较   
  13.             if(arr[k] > arr[j])  
  14.                 k = j;  
  15.         if(k != i)           //若最小的不是原来初始的那个,则将最小的与初始的进行交换   
  16.         {  
  17.             n = arr[i];  
  18.             arr[i] = arr[k];  
  19.             arr[k] = n;  
  20.         }  
  21.     }  
  22. }   
  23.  
  24. int main()  
  25. {  
  26.     int i;  
  27.     int arr[MAX] = {12, 45, 23, 45, 56, 74, 78, 89, 45, 56};  
  28.     SelectSort(arr);  
  29.       
  30.     for(i = 0; i < MAX; i++)       
  31.         printf("%d ", arr[i]);  
  32.     printf("\n");  
  33.     return 0;   

 

你可能感兴趣的:(数据结构,c,算法,职场,休闲)