首页 > 其他 > 详细

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

时间:2014-07-03 20:07:20      阅读:323      评论:0      收藏:0      [点我收藏+]

冒泡排序--递归实现

 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 void Insert(int *a,int n)//把数组a的第n个数插入前n-1个数中,注意前n-1个数已经是排好序的了
 2 {
 3     int i=n-1;
 4     int key=a[n];
 5     while((i>=0)&&(key<a[i]))
 6     {
 7         a[i+1]=a[i];
 8         i--;
 9     }
10     a[i+1]=key;
11     return;
12 }
13 
14 void InsertionSort(int *a,int n)//递归插入,跟求阶乘的思想一样,前n-1个排好序的数组,是建立在前n-2个排好序的数组的基础上插出来的
15 {
16     if(n>0)
17     { 
18         Insert(a,n);
19         InsertionSort(a,n-1);
20     }
21     else 
22         return;
23 }

待续……

各种排序的递归实现(冒泡、插入),布布扣,bubuko.com

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

原文:http://www.cnblogs.com/cy568searchx/p/3821214.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!