插入排序
来源:互联网 发布:java apache 框架 编辑:程序博客网 时间:2024/06/08 03:21
举个例子:
0 1 2 3 4 5
8 3 1 5 2 1//将a[0]看成已经排好序的,a[1]与a[0]作比较,若a[0]大于a[1]则交换,再把a[0]与a[1]看作排好序的跟下一个比较,以此类推
3 8 1 5 2 1
1 3 8 5 2 1
1 3 5 8 2 1
1 2 3 5 8 1
1 1 2 3 5 8
1、将开头元素视作已排序
2、执行下述处理,直至未排序部分消失
取出未排序部分的开头元素赋给变量V
在已排序部分,将所有比v大的元素向后移一个单位
将已取出的元素v插入空位
3、插入排序算法十分稳定
#include<stdio.h>int main(){ int n,a[100],i,j,v,z; while(scanf("%d",&n)) { for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=1;i<n;i++) { v=a[i]; j=i-1; while(j>=0&&a[j]>v) { a[j+1]=a[j]; j--; } a[j+1]=v; for(z=0;z<n;z++) { if(z>0) printf(" "); printf("%d",a[z]); } printf("\n"); } } return 0;}
阅读全文
0 0
- 插入排序-【插入排序】
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- C#191课的主要内容
- mybatis mapper把传递来的参数当作字段写入结果集中
- Android代码混淆之混淆规则
- AI:IPPR的模式生成-学习/训练方式(基本结构)
- c++实现顺序查找,折半查找
- 插入排序
- ES中查询数据使用date_histogram时报错
- Java集合知识点总结
- ubuntu/var/log/下各个日志文件
- Python基础入门教程,Python学习路线图
- Unity声音-音源组件AudioSource
- 7.类加载器及双亲委派模型
- centos7编译安装redis-4.0.0
- springmvc实现json交互-requestBody和responseBody