一 插入排序分析 对于这种插入排序呢,我认为这就是另一种排序的思想,逐个拿出每一个元素从该元素的前一个开始比较(从小到大),如果该元 素比它的前元素小,就将前元素的值赋值给该元素,直到不满足条件为止j>=0&&array[j]>min,当循环结束后, 执行array[j+1]=min;就可以成功的将...
分类:
编程语言 时间:
2015-10-30 16:46:51
阅读次数:
223
排序的稳定性如果i==j,且i在j前面,排序完成后i仍旧在j前面则这个排序算法是稳定的,否则不稳定.多关键字排序先按关键字1排序,关键词1相同则按2排序。。。 n排序中的关键操作 1、比较:任意两个数据元素通过比较操作确定先后顺序。 2、交换: 数据元素之间需要交换才能得到预期结果 ...
分类:
编程语言 时间:
2015-10-17 19:14:34
阅读次数:
199
图解数据结构(10)——排序十四、排序(Sort)http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html《Thinking in Algorithm》12.详解十一种排序算法http://blog.csdn.net/speedme...
分类:
编程语言 时间:
2015-10-12 00:31:51
阅读次数:
163
基数排序前面的算法有一个公关特点,就是基于比较大小来排序的。最坏情况NlogN,除了比较外,在做个些别的事情。桶排序假设我们有N个学生,他们的成绩是0到100之间的整数(于是有M=101个不同的成绩值)。如何在线性时间内将学生按成绩排序?建立101个桶void Bucket_Sort(Element...
分类:
编程语言 时间:
2015-09-01 10:20:42
阅读次数:
343
表排序表排序排序的是一个元素很大的。移动元素的时间很长,所以移动指针。间接排序物理排序N个数字的排列由若干个独立的环组成。如何判断一个环的结束?正确答案:每访问一个空位i后,就令table[i]=i。当发现table[i]== i 时,环就结束了。物理排序过程的最好情况是 :顺序都是一样的,什么都不...
分类:
编程语言 时间:
2015-09-01 09:09:54
阅读次数:
360
快速排序 传说中最快的排序算法。没有一种排序算法在任何情况下是最好的。 快速排序和归并排序有相同的策略,就是分而治之。分而治之就会用到递归。、 递归要有一个最小的集合。 主元 怎么选,决定了算法简单不简单。什么是快速排序算法的最好情况? B.每次正好中分下面是快速排序的最好情况:选主元 ...
分类:
编程语言 时间:
2015-08-31 19:00:31
阅读次数:
146
归并排序 核心:两个有序子列的归并。和两个多项式相加类似所谓指针,他的本职就是存位置。这里的指针可以是整数,存的是下标L最后都不知道在哪了。聪明一点嘛,不要从左往右倒,从右往左倒嘛归并算法有两种不一样的策略。分而治之,递归的去考虑问题,分而治之+归并算法。递归算法没有平均时间复杂度,没有最坏时间复....
分类:
编程语言 时间:
2015-08-31 16:46:54
阅读次数:
188
希尔排序(by Donald Shell 1959年提出) 原理:一次改变2个逆序对。要克服简单排序每次只交换相邻元素希尔增量序列原始希尔排序原始希尔排序:void Shell_sort(ElementType A[], int N){ for(D=N/2;D>0;D/=2){ //希...
分类:
编程语言 时间:
2015-08-31 09:54:58
阅读次数:
209
简单排序(冒泡,插入)介绍两大类算法,一类是排序,一类是查找前提:X是排序的算法 void X_sort( ElementType A[],int N) 。N是正整数,只讨论基于比较的排序(有定义)只讨论内部排序(所有数据都可以导入内部空间)稳定性:任意两个相等的数据,排序前后的相对位置不发生改变。...
分类:
编程语言 时间:
2015-08-31 09:51:42
阅读次数:
131
排序根据是否使用外存分为内排序和外排序,内排序只使用内存进行数据存储,外排序由于数据量比较大需要借助外存。
排序的稳定性:排序的稳定性是指排序之后相同的数据元素相对位置不变则为稳定排序,否则为不稳定排序。
插入排序
直接插入排序
思想:将一个记录插入到已经排序的有序表中,从而得到一个新的、个数加1的有序表。这个过程在查找位置过程中进行记录移动,而不用显示的交换元素
public...
分类:
编程语言 时间:
2015-08-18 19:35:11
阅读次数:
155