码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构之插入排序

时间:2017-11-05 17:24:23      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:折半查找   作者   折半插入排序   lan   tps   sha   bin   tle   查找   

插入排序是很常见的排序方式,通常我们使用的插入排序有下面几种:

1、直接插入排序

算法思想:第 i 趟插入排序为:在含有i-1个元素的有序子序列中插入一个元素,使其成为含有i个元素的有序子序列。在查找插入位置的过程中,可以同时后移元素。整个过程进行n-1趟插入,即先将整个序列的第1个元素看成是有序的,然后从第2个元素起逐个进行插入,直至整个序列有序。

 1 void directInsertSort(int Arr[], int n)
 2 {
 3     int i, j, temp;
 4     for (i = 1; i<n-1; i++)
 5     {
 6         if(Arr[i] < Arr[i-1])
 7         {
 8             j = i - 1;
 9             temp = A[i];
10             while(j >= 0 && temp < Arr[j])
11             {
12                 Arr[j+1] = Arr[j];
13                 j--;
14             }
15             Arr[j+1] = temp;
16         }
17     }
18 }

 

2、折半插入排序

算法思想:插入思想同直接插入排序,但寻找查找位置使用折半查找法。

 1 void BinInsertSort(int Arr[], int n)
 2 {
 3     int i, j, low, high, mid, temp;
 4     for(i = 1; i <= n-1; i++)
 5     {
 6         temp = Arr[i];
 7         low = 0;
 8         high = i - 1;
 9         while(low <= high)
10         {
11             mid = (low + high)/2;
12             if(temp > Arr[mid])
13                 low = mid - 1;
14             else
15                 high = low + 1;
16         }
17         for(j = 1; j > low; j--)
18             Arr[j] = Arr[j-1];
19     }
20 }

 

 

作者:耑新新,发布于  博客园

转载请注明出处,欢迎邮件交流:zhuanxinxin@foxmail.com

数据结构之插入排序

标签:折半查找   作者   折半插入排序   lan   tps   sha   bin   tle   查找   

原文地址:http://www.cnblogs.com/Amedeo/p/6208596.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!