排序算法之插入排序
来源:互联网 发布:c语言中 ||是什么意思 编辑:程序博客网 时间:2024/06/17 22:39
插入排序
思想:插入排序的思想是先假定a[0]已经排好,然后从a[1]~a[size-1]依次往里面插入。在插入过程中还要倒着插,这样比较省事。如果插入的数比要比较的数大,则放在右边;反之,放在左边。另外,按照上述思路,可能会出现多次调换的情况,处理的办法是先将比较之后要移动的数都往后面移动一位,最后再将要插入的数插入都移动之后出现的空档。这个处理很巧妙,也是插入排序的精华所在!
//给定数组直接插入排序,从小到大排列。
#include <stdio.h>
int main()
{
inti,j=1,t1,t2,s;
inta[10]={1,23,41,31,45,767,48,90,6,88};
for(j= 1;j < 10;j++)
{
t1=a[j];
i = j;
while(i > 0 && t1 < a[i-1]) //这里的while改成if就不对了
{
a[i] = a[i-1]; //这两步非常高明,直接将符合要求的都往后面移动
i--; //而且往后面移动时,不能将a[i-1]赋值给t1,那样太麻烦
} //直接移动a[i]和a[i-1],这才是高明的地方
a[i] = t1; //移动完之后会空出a[i],此时再将t1填充进去
}
printf("\nThesorted numbers are:\n");
for(i=0;i<10;i++)
{
printf("%5d",a[i]);
}
printf("\n\nend\n");
}
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之 插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- Git简易教程笔记(2)
- 使用C++模拟动态密码验证
- Rotation effect
- 【四】数组(栈与堆)
- scrapy目录结构
- 排序算法之插入排序
- mysql开发技巧笔记
- LeetCode 0070
- 设计模式笔记2-策略模式
- C++函数调用 入栈以及出栈
- cmd常用命令
- java day03-day05 基础知识梳理
- c++经典题----统计一个文件“is”单词的个数
- String_Sequence(字符串的顺序存储)