12. 蛤蟆的数据结构进阶十二排序实现之直接插入法

12. 蛤蟆的数据结构进阶十二排序实现之直接插入法

本篇名言:“路是脚踏出来的 ,历史是人写出来的,人的每一步行动都在书定自己的历史。 --吉鸿昌”

接下来看下直接插入法的实现。

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47687631

1.  直接插入法

直接插入排序(straightinsertion sort)

每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。

第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从前向后扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。

2.  代码实现

代码比较简单,具体查看源码部分。

3.  源码

#include"stdio.h"

void print(inta[],intn){

for(intj= 0; j<n; j++){

printf("%d",a[j]);

}

}

void InsertSort(inta[],intn)

{

for(inti= 1; i<n; i++){

if(a[i]<
a[i-1]){               //若第i个元素大于i-1元素,直接插入。小于的话,移动有序表后插入

intj= i-1;

int x= a[i];       
//复制为哨兵,即存储待排序元素

a[i]= a[i-1];          
//先后移一个元素

while(x< a[j]){ //查找在有序表的插入位置

a[j+1]=
a[j];

j--;        //元素后移

}

a[j+1]= x;      //插入到正确位置

}

//print(a,n);           //打印每趟排序的结果

}

}

int main(){

inta[8] = {3,1,5,7,2,4,9,6};

printf("beforeinsertion sort\n");

print(a,8);

InsertSort(a,8);

printf("\nafterinsertion sort\n");

print(a,8);

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-04 07:10:07

12. 蛤蟆的数据结构进阶十二排序实现之直接插入法的相关文章

15. 蛤蟆的数据结构进阶十五排序实现之堆排序

15. 蛤蟆的数据结构进阶十五排序实现之堆排序 本篇名言:"谁要是游戏人生 ,他就一事无成 ; 谁不能主宰自己 ,永远是一个奴隶.--歌德" 继续来看下堆排序. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47733553 1.  堆排序 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种.可以利用数组的特点快速定位指定索引的元素.堆分为大根堆和小根堆,是完全二叉树

16. 蛤蟆的数据结构进阶十六排序实现之基数排序

16. 蛤蟆的数据结构进阶十六排序实现之基数排序 本篇名言:"社会犹如一条船 ,每人都要有掌舵的准备.--易卜生" 我们来看下基数排序. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47760601 1.  基数排序 基数排序(radix sort)属于"分配式排序"(distributionsort),又称"桶子法"(bucket sort)或bin sort,顾名思义,

14. 蛤蟆的数据结构进阶十四排序实现之简单选择排序

14. 蛤蟆的数据结构进阶十四排序实现之简单选择排序 本篇名言:"即是我们是一支蜡烛也应该 " 蜡烛成灰泪始干 " 即使我们只是一根火柴也要在关键时刻有一次闪耀即使我们死后尸骨都腐烂了解也要变成磷火在荒野中燃烧. -- 艾青" 继续来看什么是简单选择排序. 欢迎转载,转载请标明出处: 1.  简单选择排序 设所排序序列的记录个数为n.i取1,2,-,n-1,从所有n-i+1个记录(Ri,Ri+1,-,Rn)中找出排序码最小的记录,与第i个记录交换.执行n-1趟后就完

18. 蛤蟆的数据结构进阶十八排序实现之快速排序

18. 蛤蟆的数据结构进阶十八排序实现之快速排序 本篇名言:"一个人做点好事并不难,难的是一辈子做好事,不做坏事.--毛泽东" 我们最后来看下快速排序,以及各个排序之间的一些信息汇总. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47817933 1.  快速排序 快速排序由C. A. R.Hoare在1962年提出.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分

19. 蛤蟆的数据结构进阶十九外部排序相关概念

19. 蛤蟆的数据结构进阶十九外部排序相关概念 本篇名言:"一个人最怕不老实,青年人最可贵的是老实作风. "老实 " 就是不自欺欺人,做到不欺骗人家容易,不欺骗自己最难. "老实作风 " 就是脚踏实地,不占便宜.世界上没有便宜的事,谁想占便宜水就会吃亏. --徐特立" 之前我们学习的排序都是内部排序的,接下去来看下外部排序. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47

10. 蛤蟆的数据结构进阶十排序相关概念

10. 蛤蟆的数据结构进阶十排序相关概念 本篇名言:"生,亦我所欲也:义,亦我所欲也:二者不可得兼,舍生而取义者也.--孟轲" 接下去我们将来看下排序相关的知识. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47381339 1.  排序 排序是什么? 将一组杂乱无章的记录按一定规律顺序排列起来. 什么排序方法是稳定的?什么是不稳定的? 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记

6. 蛤蟆的数据结构进阶六之二叉树排序树

6. 蛤蟆的数据结构进阶六之二叉树排序树 本篇名言:"有些人因为贪婪,想得更多的东西,却把现在所有的也失掉了. -- 伊索" 关于理论知识已经在上篇中进行描述,这篇我们主要来看下如何是实现二叉排序树. 欢迎转载,转载请标明出处: 1.  二叉排序树的定义 二叉排序树(BinarySort Tree)又称二叉查找(搜索)树(Binary Search Tree).其定义为:二叉排序树或者是空树,或者是满足如下性质的二叉树: ①若它的左子树非空,则左子树上所有结点的值均小于根结点的值: ②

17. 蛤蟆的数据结构进阶十七排序实现之归并排序

17. 蛤蟆的数据结构进阶十七排序实现之归并排序 本篇名言:"人生不是一种享乐 ,而是一桩十分沉重的工作.-- 列夫 . 托尔斯泰" 我们来看下归并排序. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47790163 1.  归并排序 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用.将已有序的子序列合并,得到完全有序的序列:即先使每个

26、蛤蟆的数据结构笔记之二十六串应用之建立词索引表

26.蛤蟆的数据结构笔记之二十六串应用之建立词索引表 本篇名言:"生命是一条美丽而曲折的幽径,路旁有妍花的丽蝶,累累的美果,但我们很少去停留观赏,或咀嚼它,只一心一意地渴望赶到我们幻想中更加美丽的豁然开朗的大道.然而在前进的程途中,却逐渐树影凄凉,花蝶匿迹,果实无存,最后终于发觉到达一个荒 漠.-- 萨拉" 1.  信息检索 信息检索是计算机应用的重要领域之一.为了提高图书馆数目检索的效率,建立书名关键词索引,可以实现读者快速检索书目的自动化,即读者根据关键词索引表,读者可以方便查询到