排序算法之 插入排序、希尔(shell)排序 及其时间复杂度和空间复杂度

有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是...

2015-03-26 11:28:38

阅读数:10972

评论数:1

排序算法之 基数排序 及其时间复杂度和空间复杂度

基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(...

2015-03-24 16:51:13

阅读数:8556

评论数:2

排序算法之 计数排序 及其时间复杂度和空间复杂度

计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。 #include #include void print_array(...

2015-03-23 11:44:11

阅读数:4603

评论数:0

排序算法之 冒泡排序 及其时间复杂度和空间复杂度

冒泡排序算法是所有排序算法中最简单的(前面也提到过),在生活中应该也会看到气泡从水里面出来时,越到水面上气泡就会变的越大。在物理上学气压的时候好像也看到过这种现象;其实理解冒泡排序就可以根据这种现象来理解:每一次遍历,都把大的往后面排(当然也可以把小的往后面排),所以每一次都可以把无序中最大的(最...

2015-03-17 11:46:06

阅读数:20066

评论数:0

排序算法之 选择排序 及其时间复杂度和空间复杂度

其实选择排序是非常简单的,和冒泡排序有异曲同工之妙。就是把元素分成两部分,一部分是有序的,另外一部分是无序的;每次循环从无序的元素中选取一个元素放到有序的元素中,依次循环到最后把所有元素都放到了有序那一部分中(也就是无序部分,元素为零);

2015-03-17 11:44:19

阅读数:8859

评论数:1

排序算法之 堆排序 及其时间复杂度和空间复杂度

堆排序是由1991年的计算机先驱奖获得者、斯坦福大学计算机科学系教授罗伯特.弗洛伊德(Robert W.Floyd)和威廉姆斯(J.Williams)在1964年共同发明了的一种排序算法( Heap Sort ); 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的...

2015-03-14 12:02:05

阅读数:29361

评论数:5

排序算法之 归并排序 及其时间复杂度和空间复杂度

在排序算法中快速排序的效率是非常高的,但是还有种排序算法的效率可以与之媲美,那就是归并排序;归并排序和快速排序有那么点异曲同工之妙,快速排序:是先把数组粗略的排序成两个子数组,然后递归再粗略分两个子数组,直到子数组里面只有一个元素,那么就自然排好序了,可以总结为先排序再递归;归并排序:先什么都不管...

2015-03-12 16:16:47

阅读数:27115

评论数:0

排序算法之 快速排序 及其时间复杂度和空间复杂度

基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 我看了下网上有些bolg写排序算法,有的是理解错误了;有的呢是太过于...

2015-03-11 14:48:20

阅读数:40467

评论数:7

提示
确定要删除当前文章?
取消 删除
关闭
关闭