各种排序的递归实现(冒泡、插入)

冒泡排序--递归实现

 1 void SortByRecursion( int *array, int n )
 2 {
 3     int i;
 4     if(1 == n)
 5     {
 6         return;
 7     }
 8     for(i = 0; i < n - 1; i++)
 9     {
10         if(array[i] > array[i + 1])
11              swap( &array[i], &array[i + 1]);
12     }
13     SortByRecursion( array, n - 1 );
14 }

插入排序---递归实现

 1 //插入排序(递归)  
 2 void InsertSortRecursively(int *pArr, int index, int nLength)  
 3 {  
 4     if (index >= nLength)  
 5     {  
 6         return;  
 7     }  
 8   
 9     int key = pArr[index];//记录当前待插入的元素    
10     int i=0;  
11     for (i=index-1; i>=0&&key<pArr[i]; i--)  
12     {  
13         pArr[i+1] = pArr[i];          
14     }  
15     pArr[i+1] = key;  
16     InsertSortRecursively(pArr, index+1, nLength);  
17 }  

待续……

原文地址:https://www.cnblogs.com/cy568searchx/p/3821214.html