冒泡排序 冒泡排序(Bubble Sort)它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 比较相邻的元素,如果第一个比第二个元素要大,则交换这两个数。对每对相邻的元素进行同样的工作,从第一 ...
分类:
编程语言 时间:
2017-08-15 17:15:04
阅读次数:
147
代码: 这个算法更简单了,记住三个字:打擂台。 时间复杂度O(n ** 2) 空间复杂度O(1) 不稳定算法。 记住四个稳定排序算法:直接插入排序、冒泡排序、二路归并排序、基数排序。剩下都是不稳定的。 ...
分类:
编程语言 时间:
2017-08-04 18:18:18
阅读次数:
124
代码: 怎么少了一种?先写这些,以后再修改一下。 ...
分类:
编程语言 时间:
2017-08-04 18:17:45
阅读次数:
122
代码: 冒泡排序应该是最熟悉的排序算法了吧,所以基本上写这个算法没遇到什么问题。值得注意的是,python中交换两个数的顺序可以通过这种方式实现,这种小tip可以学习一下。 时间复杂度O(n ** 2) 空间复杂读O (1) 稳定排序算法。 说明:稳定排序大概有四种:直接选择排序、冒泡排序、归并排序 ...
分类:
编程语言 时间:
2017-08-04 17:35:50
阅读次数:
214
一、概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目 ...
分类:
编程语言 时间:
2017-07-19 01:10:45
阅读次数:
149
1.直接插入排序:将需要排序的列表分为已排序和未排序部分,依次将未排序部分的数字与已排序部分进行比较,找到比自己小的数字时停止,并插入到该数字后一位 ...
分类:
编程语言 时间:
2017-07-09 19:39:20
阅读次数:
155
算法思想:每一趟将一个待排序的记录,按照其关键字的大小插入到有序队列的合适位置里,知道全部插入完成。 设计步骤: 假设有一组无序序列 R0, R1, ... , RN-1。 (1) 我们先将这个序列中下标为 0 的元素视为元素个数为 1 的有序序列。 (2) 然后,我们要依次把 R1, R2, .. ...
分类:
编程语言 时间:
2017-07-02 17:44:46
阅读次数:
186
设计思想 它是根据关键字中各位的值,通过对排序的N个元素进行若干趟“分配”与“收集”来实现排序的。它不要比较关键字的大小。 假设:R {50, 123, 543, 187, 49, 30, 0, 2, 11, 100} 任何一个阿拉伯数,它的各个位数上的基数都是以0~9来表示的。所以我们不妨把0~9 ...
分类:
编程语言 时间:
2017-07-02 17:11:57
阅读次数:
203
本文Python实现了插入排序、基数排序、希尔排序、冒泡排序、高速排序、直接选择排序、堆排序、归并排序的后面四种。 上篇:Python学习(三) 八大排序算法的实现(上) 1.高速排序 描写叙述 通过一趟排序将要排序的数据切割成独立的两部分,当中一部分的全部数据都比另外一部分的全部数据都要小,然后再 ...
分类:
编程语言 时间:
2017-06-29 09:56:09
阅读次数:
211
转自 http://blog.csdn.net/jobbofhe/article/details/51426934 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。 ...
分类:
编程语言 时间:
2017-06-21 23:09:55
阅读次数:
301