递归实现插入排序,算法导论练习2.3,linux C实现
2013-10-18 15:32
267 查看
采用递归实现插入排序,代码简洁,linux下纯C实现,编译通过,核心函数如下:
完整代码如下(代码可在anycodes在线编译测试):
void sort(int* a, int index, int N) { int key = *(a + index); int i = index - 1; if(index+1 <= N) { for(;i>=0;i--) if(key >= *(a+i)) break; else *(a+i+1) = *(a+i); *(a+i+1) = key; index = index + 1; sort(a, index, N); } return; }
完整代码如下(代码可在anycodes在线编译测试):
#include <stdio.h>
void sort(int* a, int index, int N) { int key = *(a + index); int i = index - 1; if(index+1 <= N) { for(;i>=0;i--) if(key >= *(a+i)) break; else *(a+i+1) = *(a+i); *(a+i+1) = key; index = index + 1; sort(a, index, N); } return; }
int main()
{
int sequence[10] = {56,4,76,18,34,12,24,16,38,1};
int L = sizeof(sequence)/sizeof(int);
int i = 0;
sort(sequence, 1, L);
for(;i<L;i++)
{
printf("%d ", sequence[i]);
}
printf("\n");
return 0;
}
相关文章推荐
- 二分法实现插入排序,时间复杂度O(nlgn),算法导论练习2.3,linux纯C实现
- 判断序列中是否存在两个元素之和为x,时间复杂度O(nlgn),算法导论练习2.3,linux纯C实现
- 第二章之“二分查找”(递归实现,练习2.3-5)
- 2.3-4 递归实现插入排序
- 算法导论Java实现-二分插入排序(习题2.3-6)
- 算法导论2.3-5答案 分别采用递归与非递归方式实现二分查找 c++实现
- 《算法导论》第二章----插入排序(伪代码实现、课后习题(递归版本、二分查找策略版本))
- Linux通过shell实现递归列目录及对文件的处理
- linux下递归遍历目录下的文件,实现批量替换
- 小练习:用socket实现Linux和Windows之间的通信
- 插入排序的递归实现和二分查找递归实现,算法导论2.3-4和2.3-5
- 《算法导论》CLRS算法C++实现(一)P11 插入排序
- python实现递归遍历目录(linux下测试通过)
- linux命令练习:脚本实现硬盘分区功能
- 算法导论 练习 2.3-1
- linux下c语言递归实现ls -l功能
- 《算法导论》1、插入排序实现(C++)
- 算法导论第十章习题10.4-3非递归方式实现二叉树的中序遍历
- 算法导论 练习 2.3-6
- 《算法导论》学习笔记——插入排序的java实现