插入排序
来源:互联网 发布:linux tomcat加大内存 编辑:程序博客网 时间:2024/06/05 17:18
插入排序是对少量元素进行排序的有效算法。
其工作原理与打牌类似,开始摸牌时,我们的左手是空的,一次从桌上摸起一张牌,插入到左手牌中正确的位置上。为了找到这个正确的位置,需要将它与手中已有的每一张牌从右到左进行比较。无论什么时候,左手的牌总是已经排好序的。
具体的方法是通过一个数组A[1..n],包含了n个待排序的数,这些数组在数组A中就地排序,不需要添加额外的空间。
以下是代码:
#include <stdio.h>#include <stdlib.h>#define MAX 10//对数组A进行插入排序,最大元素个数为MAXvoid Insert_Sort(int* A){ int i,j,key,temp; for(j=1;j<MAX;j++) { key=A[j]; //以下是插入过程,将A[j]插入到以排好序的数组A[1..j-1]中 i=j-1; while(i>=0&&A[i]>key) { temp=A[i+1]; A[i+1]=A[i]; A[i]=temp; i=i-1; } }}//主函数进行测试int main(){ int count; int A[]={4,3,6,3,2,8,90,7,6,56}; Insert_Sort(A); for(count=0;count<MAX;count++) printf("%d ",A[count]); printf("\n"); return 0;}
- 插入排序-【插入排序】
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- linux文本操作——字符修饰和字符交换
- PC启动
- C++语法基础--list容器提供的的特有操作--merge(),remove(),reverse(),unique(),sort(),splice()
- 还原表空间的创建和维护
- Windows 8 关闭无线后无法打开WIFI的解决办法
- 插入排序
- 抓取百度查询结果
- 还原表空间之间的切换
- linux-忽略命令行大小写
- python 之 json2
- ibatis的配置
- 获取还原数据信息
- Socket编程基础API
- iOS: NSData的方法dataWithBytesNoCopy:length:freeWhenDone: