(排序)用C语言实现的直接插入排序
2013-03-20 21:56
281 查看
/* *直接插入排序第一次是假设数组第一个元素是有序区,剩下的元素是 *无序区,每次将无序区的第一个元素与有序区的每一个元素从后向前比较 *找到其插入的合适位置,将其插入到有序区 */ #include<stdio.h> void InsertSort(int *a,int len); int main(void) { int a[10]={122,153,155,65879,27,546,56,9,6,33}; InsertSort(a,10); return 0; } void InsertSort(int *a,int len) { int i,j; int temp; // 注意,这里i从1开始,因为当待排序元素正序是,至少比较n-1次 for(i=1;i<len;i++) { //用j记录有序序列的最后一个下标,我们的目标是寻找有序序列的合适下标 j=i-1; //用temp记录无序序列的第一个元素,这个元素是我们比较的基准元素 //用temp暂存a[i],以防元素后移覆盖此元素的值 temp=a[i]; while(j>=0&&a[j]>temp) {//满足此条件时,说明有序序列要后移一个元素 a[j+1]=a[j]; j--; } //找到了合适的位置j+1,将temp插入在此位置 a[j+1]=temp; } for(int k=0;k<len;k++) { printf("%d\n",a[k]); } }
相关文章推荐
- C语言基本排序算法之插入排序与直接选择排序实现方法
- 排序之一:直接插入排序(C语言实现)
- c语言实现直接插入排序(正序和逆序)
- C语言中快速排序和插入排序优化的实现
- 算法从排序开始——插入排序(Insertion Sort)C语言及Java实现
- 冒泡排序、插入排序、选择排序--C语言实现
- 算法导论之插入排序,选择排序,归并排序,冒泡排序,希尔排序,堆排序,快速排序的c语言实现
- C语言实现选择排序、直接插入排序、冒泡排序的示例
- java实现排序算法之2-路插入排序,直接插入排序,折半插入排序
- 直接插入排序(C语言实现)
- C语言实现直接插入排序
- C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆)
- c语言实现选择排序、冒泡排序、插入排序
- (数据结构排序的实验四)快速,冒泡,简单选择,直接插入排序的c语言实现!!
- C语言实现直接插入排序
- 简单了解C语言中直接插入排序与直接选择排序实现
- C语言实现基本排序算法----排序(直接插入排序,SHELL排序,冒泡排序,快速排序,简单选择排序,堆排序)
- 排序算法--插入排序(直接插入排序、折半插入、shell排序)的java实现
- 数据结构 查找及排序算法、直接插入排序及顺序查找(c语言实现)
- C语言直接插入排序和折半插入排序算法的实现