经典插入排序算法分析 未优化的版本 C语言实现
来源:互联网 发布:数据库的储存过程 编辑:程序博客网 时间:2024/05/20 03:04
直接插入排序
1.插入排序思想
直接插入排序思想是将待排序的数组看作两个部分:有序部分和无序部分,排序过程就是不断将无序部分的元素插入到有序部分合适的位置上,使有序部分元素不断增加而无序部分数据不断减少,直到数组全部有序为止。
假设数组A[0...n-1]
(1)初始时,A[0]作为有序部分,A[1...n-1]为无序部分;
(2)在有序部分进行比较和移动,为无序部分的第一个元素A[1]找到合适的位置,并插入到有序部分,使A[0,1]构成新的有序部分,而A[2...n-1]为剩下的无序部分;
(3)按照步骤(2)执行,直到数组有序。
2.插入排序的实现
根据上述的算法思想描述,可以得到实现代码(C实现)如下。
//插入排序算法 这个是没有优化过的void insertSort(int *a,int len){ int i,j,value; for(i=1;i<len;i++) { value=a[i];//无序的第一个元素 for(j=i-1;j>=0&&a[j]>value;j--) { a[j+1]=a[j]; } a[j+1]=value; } for(i=0;i<len;i++) { printf("%d ",a[i]); }}int main(){ int a[]={9,8,7,6,5,44,98987,45,31,454,3,1}; insertSort(a,12); return 0;}
0 0
- 经典插入排序算法分析 未优化的版本 C语言实现
- 插入排序算法的C语言实现
- 排序算法的C语言实现-插入排序
- 经典算法:红黑树的C语言实现 ( 插入 、删除 )
- 直接插入排序算法c语言实现。 己它的时间复杂度分析。
- 未优化的冒泡排序算法.c
- [算法练习]插入排序的C语言实现
- 插入排序算法C语言实现
- 插入排序算法C语言实现
- 插入排序算法(C语言实现)
- 直接插入排序算法--c语言实现
- 【算法】直接插入排序C语言实现
- 插入排序算法C语言实现
- 插入排序算法+优化 (二分查找优化有序部分)C语言实现
- 经典排序算法(C语言实现)
- 常见的排序算法对比及实现C语言版本
- C语言直接插入排序和折半插入排序算法的实现
- 经典(java版)排序算法的分析及实现之一直接插入排序
- 奇偶数分离
- 算法分析与设计的读书笔记加个人总结
- 回调函数的小结
- 11.6 如果iOS中xib 和viewcontroller 不对应
- 第十一周项目6-回文,素数-1
- 经典插入排序算法分析 未优化的版本 C语言实现
- 枚举类型
- 关于linux启动读取配置文件的情况
- Spring4+Hibernate4事务小记
- Service与线程和进程的关系
- 在类中调用自己类的方法
- 数据库性能优化之段顾问
- HDU 2.1.4 又见GCD
- SG函数