分类:
1)插入排序(直接插入排序、希尔排序)
2)交换排序(冒泡排序、快速排序)
3)选择排序(直接选择排序、堆排序)
4)归并排序
5)分配排序(基数排序)
所需辅助空间最多:归并排序
所需辅助空间最少:堆排序
平均速度最快:快速排序
不稳定:快速排序,希尔排序,堆排序。
先来看看8种排序之间的关系:
1.直接插入排序
(1)基...
分类:
编程语言 时间:
2016-07-15 13:46:16
阅读次数:
212
分类: 1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序) 所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序。 先来看看8种排序之间的关系: 1. ...
分类:
编程语言 时间:
2016-07-15 12:56:17
阅读次数:
177
1.大致原理 (1)冒泡排序:相邻的两两比较,把最大的放到下面 (2)选择排序:拿一个比,把最小的放到最前面 (3)插入排序:拿一个插入已排好的序列 (4)快速排序:把大的放右边,小的放左边,依次排序 2.JAVA语言提供的排序函数 (1)Arrays类中的sort()使用的是“经过调优的快速排序法 ...
分类:
编程语言 时间:
2016-07-15 00:41:41
阅读次数:
215
近日开始学习算法,所看课本为清华大学出版社的《算法设计与分析基础》,对简单的数据结构进行了复习,已经学习了算法效率分析基础。 本篇开始对所学算法的思想进行实际JS编码,看学习的进度,每日写一篇学到的算法,以上为背景。 蛮力法是一种直接解决问题的方法,常常基于问题的描述和所涉及的概念定义;所谓的“力” ...
分类:
编程语言 时间:
2016-07-14 21:35:29
阅读次数:
352
选择算法
选择排序—简单选择算法(Selection sort)
算法描述
》每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。即,先选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。
》具体...
分类:
编程语言 时间:
2016-07-13 16:55:04
阅读次数:
202
本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均速度最快:快速排序 不稳定:快 ...
分类:
编程语言 时间:
2016-07-12 20:59:49
阅读次数:
243
选择排序工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。这里依旧分别列出C、OC和swift版本的代码,欢迎交流、指正。 C语言版 //函数声明void select_sort(int a[], int n);int array[ ...
分类:
编程语言 时间:
2016-07-12 18:56:25
阅读次数:
144
选择排序 排序要求:把长度为n的数组a按照从小到大的顺序进行排序。 冒泡排序思路:给定一个长度为n的数组a,循环n-1次,每次循环找出a[i]到a[n]中最小数的数,然后把该数和a[i]交换位置。 如何找出最小的数?:循环数组,逐个判断大小,把较小的数的脚标取出来,此次循环结束之后把脚标位置的数和a ...
分类:
编程语言 时间:
2016-07-11 21:08:05
阅读次数:
208
直接选择排序: 直接选择排序实质是一种交换排序.每次从待排序序列中选取关键字最小的元素,与当前元素交换,直到全部排序. 时间复杂度: O(n^2)-->O(n^2) 空间复杂度:O(1) 是否稳定排序:不稳定 ...
分类:
编程语言 时间:
2016-07-11 12:18:59
阅读次数:
169