首页 > 代码库 > 各种排序的递归实现(冒泡、插入)
各种排序的递归实现(冒泡、插入)
冒泡排序--递归实现
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 }
待续……
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。