八大排序——直接插入排序
来源:互联网 发布:敬汉卿 知乎 编辑:程序博客网 时间:2024/05/21 06:43
直接插入排序(Straight Insertion Sort)的基本操作是将一个元素插入到序列已经有序的那一部分中去,从而使序列中有序的部分逐渐扩大,直到整个序列有序。博主认为直接插入排序过程比较容易理解,所以不作过多赘述,直接上代码
#include<stdio.h>void main(){ int a[6]={5,6,8,4,6,9}; int length=sizeof(a)/sizeof(int); int temp; int i,j; for(i=1;i<length;i++){ if(a[i]<a[i-1]){ temp=a[i]; for(j=i-1;j>=0&&a[j]>temp;j--){ a[j+1]=a[j]; } a[j+1]=temp; } } for(i=0;i<length;i++){ printf("%d\t",a[i]); } printf("\n");}
直接插入排序的整个过程是一个for循环嵌套了一个if条件判断语句,if语句中又嵌套着一个for循环。外层for循环的每一步都是直接进行if条件判断,比较a[i]和a[i-1],若不符合条件则说明有序,for循环直接跳入下一层,若符合则说明无序,进入if语句,将较小的一个元素赋给”哨兵“temp,紧接着进入代码12到14行的for循环,这个循环是将”合适位置“与a[i]之间的所有元素统一向后移动一位,直到找到”合适位置“也就是说for循环不满足循环条件的时候,将temp的值放入到“合适位置”,”哨兵“temp的作用就是保存待插入元素,以免移动造成其数据丢失。
注:直接插入排序算法的时间复杂度为O(n^2)
1 0
- 八大排序——直接插入排序
- Java 八大排序之——直接插入排序
- 八大排序--直接插入排序
- 八大排序算法之直接插入排序
- 八大排序算法-直接插入排序
- 八大排序算法之直接插入排序
- 八大排序之直接插入排序
- 八大排序算法之直接插入排序
- 八大排序算法之直接插入排序
- 八大排序算法 之 直接插入排序
- 八大排序之--直接插入排序
- 八大排序算法-直接插入排序
- 八大排序之——插入排序
- 八大排序 -- 插入排序 之 【直接插入排序】
- 八大排序算法及完整c代码—直接插入排序
- 插入排序—直接插入
- 插入排序——直接插入排序
- 插入排序——直接插入排序
- 《ACM程序设计》-Problem-P-交换食物获得最大值问题
- IoC容器
- assert()函数用法
- 性能测试工具JMeter的使用
- Struts2拦截器的使用 (详解)(转)
- 八大排序——直接插入排序
- Java设计模式之组合模式
- 认识数字图像
- JavaWeb——eclipse与tomcat环境配置
- 中文技术文档的写作规范
- LeetCode #10 Regular Expression Matching
- VestaCP 跨站访问权限修改
- Windows基本数据类型
- vue组件最佳实践