C语言排序之递归选择排序法。

 什么是递归选择排序法?

     就是先从1位开始将数组中的最大/最小的数找到放在首位。 然后在从第2位开始找把最大/最小的数找到放在第2位,以此类推,直到最后一位,排序完成。

  
  
  
  
  1. #include <stdio.h> 
  2. #include <math.h> 
  3. int main() { 
  4.     void sort(int is[5], int count, int start); 
  5.     int i; 
  6.     int is[] = { 1, 3, 4, 2, 5 ,8,6,3,2}; 
  7.     sort(is, 9, 0); 
  8.     for (i = 0; i < 9; i++) { 
  9.         printf("%d\n", is[i]); 
  10.     } 
  11.     return 0; 
  12.  
  13. void sort(int is[], int count, int start) { 
  14.     int max, maxIndex = -1, temp, i; 
  15.     max = is[start]; 
  16.  
  17.     for (i = start; i < count; i++) { 
  18.         if (is[i] > max) { 
  19.             max = is[i]; 
  20.             maxIndex = i; 
  21.         } 
  22.     } 
  23.     if (maxIndex > -1) { 
  24.         temp = is[maxIndex]; 
  25.         is[maxIndex] = is[start]; 
  26.         is[start] = temp; 
  27.     } 
  28.     if (start < count - 1) { 
  29.         sort(is, count, start + 1); 
  30.     } 

 

你可能感兴趣的:(C语言排序,递归选择排序法)