数据结构之插入排序

Posted Arthurian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构之插入排序相关的知识,希望对你有一定的参考价值。

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

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@aliyun.com

以上是关于数据结构之插入排序的主要内容,如果未能解决你的问题,请参考以下文章

面试之插入排序算法

数据结构与算法之排序算法:插入排序

数据结构排序之插入排序

排序02-直接插入排序法

[Java数据结构与算法]简单排序之插入排序

python 数据结构与算法之排序(冒泡,选择,插入)