一、直接插入排序稳定,时间复杂度:最好O(n)、最差O(n^2)、平均O(n^2)。空间复杂度O(1)void InsertSort(int L[], int n){ int i, j,key; for (i = 1; i= 0 && key =high+1;j--)//后移 //j >= low ...
分类:
编程语言 时间:
2015-07-22 22:06:11
阅读次数:
116
内部排序算法总结:排序算法有各自的时间复杂度,并不代表时间复杂度高的算法在任何情况下就比时间复杂度低的算法要低效,相反也一样。排序算法按照其最基本的操作可以分为以下几种类型:插入类排序算法直接插入排序算法折半插入排序算法希尔排序算法选择类排序算法简单选择排序算法堆排序交换类排序算法冒泡排序快速排序1...
分类:
编程语言 时间:
2015-07-20 23:08:18
阅读次数:
147
排序可分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,称为内排序;如果排序过程中需要使用外存,则成为外排序。
内排序有以下几类:
插入类排序:直接插入排序、二分法(折半)插入排序、希尔(缩小增量)排序
选择类排序:简单选择排序、堆排序
交换类排序:冒泡排序、快速排序、三路划分的快速排序
归并类排序:二路归并排序
基数类排序:MSD基数排序、LSD基数排序
各种内部排序算法的比较直接插入...
分类:
编程语言 时间:
2015-07-18 11:09:15
阅读次数:
165
基本思想折半插入排序的基本思想与直接插入排序一样,在插入第i(i≥1)个元素时,前面i-1个元素已经排好序。区别在于寻找插入位置的方法不同,折半插入排序是采用折半查找法来寻找插入位置的。
折半查找法的基本思路是:用待插元素的值与当前查找序列的中间元素的值进行比较,以当前查找序列的中间元素为分界,确定待插元素是在当前查找序列的左边还是右边,如果是在其左边,则以该左边序列为当前查找序列,右边也类似。按...
分类:
编程语言 时间:
2015-07-18 08:24:26
阅读次数:
136
一、插入排序
插入排序就是将一个待排数据按其大小插入到一个有序表的适当位置,并插入后仍有序。分为三类:直接插入排序;折半
插入排序;希尔插入排序。
【直接插入排序】
例如,把{4,3,1,2}进行排序,算法过程见图:
通常,有序的序表是r[1]、r[2].....,而r[0]是哨兵,用于存放需要排序的数据,属于赋值空间。
所以,算法时间复杂度是:...
分类:
编程语言 时间:
2015-07-15 11:17:18
阅读次数:
146
数据结构中常见的内部排序算法: 插入排序:直接插入排序、折半插入排序、希尔排序 交换排序:冒泡排序、快速排序 选择排序:简单选择排序、堆排序 归并排序、基数排序、计数排序直接插入排序: 思想:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,直到全部记录插入完成。 性...
分类:
编程语言 时间:
2015-07-14 13:10:31
阅读次数:
211
一、折半插入排序(二分插入排序)
将直接插入排序中寻找A[i]的插入位置的方法改为采用折半比较,即可得到折半插入排序算法。在处理A[i]时,A[0]……A[i-1]已经按关键码值排好序。所谓折半比较,就是在插入A[i]时,取A[i-1/2]的关键码值与A[i]的关键码值进行比较,如果A[i]的关键码值小于A[i-1/2]的关键码值,则说明A[i]只能插入A[0]到A[i-1/2]之间,故...
分类:
编程语言 时间:
2015-06-24 14:40:37
阅读次数:
147
数据结构排序算法总结这章的内容比较经典,都是一些很好的算法,将来很可能会用得到,总结一下,加深一下印象。文章篇幅有点大。 一:插入排序 1)直接插入排序 2)折半插入排序3)希尔排序二、交换排序1)冒泡排序 2)快速排序三、选择排序1)简单选择排序 2)堆排序 四、归并排序五、基数排序一、插入排序....
分类:
编程语言 时间:
2015-06-22 21:58:51
阅读次数:
250
#include
using namespace std;
#define SIZE 21
typedef int Sqlist[SIZE];
void BInsertSort(Sqlist &L,int n)
{
int i,j;
int low;
int high;
int mid;
for(i=2;i<n;++i)
{
L[0] = L[i];
...
分类:
编程语言 时间:
2015-06-18 13:36:45
阅读次数:
136
插入排序 给出一下四种方法:
直接插入排序,折半插入排序,二路插入排序,希尔插入排序
代码实现:
#include
using namespace std;
#define size 21
typedef int Sqlist[size];
void SInsertSort(Sqlist &L, int n) //直接插入
{
cout << "直接插...
分类:
编程语言 时间:
2015-06-17 15:30:06
阅读次数:
140