排序一直以来都是让我很头疼的事,以前上《数据结构》打酱油去了,整个学期下来才勉强能写出个冒泡排序。由于要找工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间重新研究了一下。 排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程 ...
分类:
编程语言 时间:
2018-03-08 20:20:39
阅读次数:
170
排序 1.主存能放下的数据进行排序称为内部排序,反之称为外部排序(磁盘上)。2.任何进行交换相邻元素进行排序的算法均需要O(N2)的复杂度,任何进行比较的排序算法至少需要O(N*log(N))的算法复杂度。 3.堆排序和归并排序的时间复杂度平均和最坏均为O(N*log(N)) 4.Java中执行一次 ...
分类:
编程语言 时间:
2018-03-04 11:55:28
阅读次数:
197
正文之前 快速排序(英语:Quicksort),又称划分交换排序(partition exchange sort),一种排序算法,最早由东尼 霍尔提出。在平均状况下,排序n个项目要 O ( n log n )次比较,在最坏情况下则需要 O ( n 2)次比较,但这种状况并不常见。事实上,快速排序通常 ...
分类:
编程语言 时间:
2018-02-23 10:55:47
阅读次数:
216
正文之前 归并排序(Merge sort),是建立在归并操作上的一种有效的排序算法,效率为O(n log n ),1945年由约翰 冯 诺依曼首次提出,该算法是采用分治法的一个非常典型的应用,且各层分治递归可以同时进行。 &em ...
分类:
编程语言 时间:
2018-02-21 17:41:56
阅读次数:
166
上次给大家说了说简单的冒泡排序,这次我们来说一说插入排序 插入排序的做法就像是我们日常生活中玩扑克牌一样,每次抽一张牌,将扑克牌按一定顺序插入手牌中,一步步完成排序 本文将介绍以下内容 排序思想 算法实现(JAVA) 测试阶段 排序过程讲解 算法分析 排序思想 插入排序同样有内循环和外循环,外循环执 ...
分类:
编程语言 时间:
2018-02-21 11:38:23
阅读次数:
192
上一篇给大家说了选择排序的原理,这一次我们来说一说冒泡排序的原理 其实冒泡排序和选择排序一样都是很简单的排序方式。 本文将介绍以下内容 排序原理 算法实现(JAVA) 测试阶段 算法分析 排序原理 每次循环都遍历一次数组,如果前一个元素的值大于(或小于)后一个元素,则交换位置。若遍历数组后,每对元素 ...
分类:
编程语言 时间:
2018-02-19 10:55:26
阅读次数:
167
在排序算法中,最简单的莫过于选择排序了。 排序思路: 在选择排序算法中分别有一个外循环和一个内循环,假设需要排序的序列共有n个元素,所以外循环的次数为n次,在n次交换(外循环)中,每次设置序列中的第一个元素为最小值(min),然后进行内循环,每次内循环都将序列中与min比较,若有元素小于min,则进 ...
分类:
编程语言 时间:
2018-02-19 10:54:46
阅读次数:
157
import random from timewrap import * @cal_time def bubble_sort(li): for i in range(len(li) - 1): # i 表示趟数 # 第 i 趟时: 无序区:(0,len(li) - i) for j in range ...
分类:
编程语言 时间:
2018-02-13 19:54:14
阅读次数:
193
冒泡排序思路: 选择排序思路: 插入排序思路: 小结: 详细代码解释看下一篇 ...
分类:
编程语言 时间:
2018-02-01 17:34:49
阅读次数:
133
快速排序: 堆排序: 二叉树: 两种特殊二叉树: 二叉树的存储方式: 小结: 堆排序正题: 向下调整: 堆排序过程: 堆排序-内置模块: 扩展问题topk: 归并排序: 怎么使用: NB三人组小结 ...
分类:
编程语言 时间:
2018-02-01 17:32:14
阅读次数:
131