这个就更简单了...不多说了,自己理解吧。 ...
分类:
编程语言 时间:
2018-01-16 00:36:03
阅读次数:
193
上一篇总结了直接选择排序和堆排序,这一篇要总结的是插入排序中的直接插入排序和希尔排序,我们主要从以下几点进行总结。 1、直接插入排序及算法实现 2、希尔排序及算法实现 3、直接插入排序PK希尔排序 1、直接插入排序及算法实现 什么是直接插入排序呢?直接插入排序的基本思想是:每次从无序序列中取出第一个 ...
分类:
编程语言 时间:
2018-01-15 00:30:32
阅读次数:
187
2.实现第二个目标:将第二大的数放在第二位 则在一个for循环之后增加代码段: 3.以此类推,实现第三个目标:将第三大的数放在第三位的代码段如下: 4.当实现到倒数第二个数字的时候,就发现实现了从大到小的排序功能,我们不难发现以上代码段有很高重复率,因此可以总结如下: ...
分类:
编程语言 时间:
2018-01-14 19:33:33
阅读次数:
163
上一篇总结了交换排序的冒泡排序和快速排序。这一篇要总结的是选择排序,选择排序分为直接选择排序和堆排序,主要从以下几点进行总结。 1、直接选择排序及算法实现 2、堆排序及算法实现 1、直接选择排序及算法实现 直接选择排序(Straight Select Sort) 是一种简单的排序方法,它的基本思想是 ...
分类:
编程语言 时间:
2018-01-14 10:55:33
阅读次数:
151
经典排序:冒泡排序+选择排序 例 FJUTOJ 1842 冒泡排序 原理是取相邻两个数进行大小比较,判断是否交换。 以从小到大排序为例,冒泡排序就像气泡一样,最小的数慢慢浮上来,最大的数慢慢沉下去。那么完整从头到尾做一次之后最后一位就是原序列中最大的数字了。然后只需要对1~(n-1)个数字进行排序, ...
分类:
编程语言 时间:
2018-01-14 01:02:20
阅读次数:
176
选排序的思路是首先从要排序的数组中选择最小的和目前的第一位交换位置,然后从剩下的数中选择最小的和第二个位置的数交换位置,再从剩下的数中选择最小的和第三个位置的数交换位置,以此类推,实现代码如下: 算法分析:无论最好或最坏情况,该算法的时间复杂度总是O(n2),因为每次要走第二个for循环找最小的数, ...
分类:
编程语言 时间:
2018-01-13 18:48:28
阅读次数:
123
import random import datetime # 选择排序 def getMaxIndex(index, ls) -> int: """ :type ls list :type index: int :return: """ # 选择排序时 一开始就认为当前的数的最大的 maxInde ...
分类:
编程语言 时间:
2018-01-13 17:04:16
阅读次数:
147
简单选择排序的基本思想:(从小到大) 第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换; 第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换; 以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到 ...
分类:
移动开发 时间:
2018-01-13 12:58:00
阅读次数:
160
参考文档: 原理: 对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录与第一个记录的位置进行交换;接着对不包括第一个记录以外的其他记录进行第二轮比较,得到最小的记录并与第二个记录进行位置交换;重复该过程,直到进行比较的记录只有一个时为止 代码实现: 算法分析: 时间复杂度:O(N2) ...
分类:
编程语言 时间:
2018-01-12 20:26:24
阅读次数:
215
冒泡排序 冒泡排序是最常用的排序算法之一,它排序的原理是 比较相邻元素的值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把较大的元素移动到数组后面,因为类似水中气泡往上升的动作,所以称作冒泡排序。 冒泡排序有双层循环,外层循环用于控制循环次数,内层循环用于比较值的大小,因此外层循环的次数= ...
分类:
编程语言 时间:
2018-01-10 18:41:19
阅读次数:
154