1 算法原理依次确认第一个位置0~倒数第二个位置size-2的值。在确认位置i时,其前面的位置都已经确认,所以位置i处应该放置剩余的元素中的最小值。选择排序时间复杂度为O(n^2),速度比较慢。当数组长度为10万时,就耗时20s了。选择排序是不稳定排序,相等的元素,排序之后,相对位置可能发生变化。2...
分类:
其他好文 时间:
2014-06-20 23:49:41
阅读次数:
318
最近又翻看了一下数据结构(数据结构学渣)。以前总是看不懂,连冒泡和选择排序都要纠结半天,后来才慢慢有意识能区分开来。当真的理解了快速排序之后,才觉得,这是个很赞的排序,很容易理解。于是简单的,模仿c的做法,实现了javascript上的排序,目前只有冒泡、选择和快速排序。//不过貌似快速排序用到了传...
分类:
编程语言 时间:
2014-06-20 18:50:02
阅读次数:
246
1 算法原理元素依次两两比较,大的数往后浮出,那么第一趟当n-2与n-1比较后,最大的数即浮到最后一个位置。第二趟,当n-3与n-2比较时,第二大的数即浮到倒数第二个位置。最后一趟,当0与1向比较的时候,最小的和第二小的数确定。冒泡排序时间复杂度为O(n^2),速度比较慢。当数组长度为10万时,就耗...
分类:
其他好文 时间:
2014-06-18 12:47:17
阅读次数:
172
package foo;import java.util.Arrays;public class Main { public static void selectionSort(int[] a, int len) { int in, out, min; fo...
分类:
其他好文 时间:
2014-06-18 10:31:17
阅读次数:
220
// Playground - noun: a place where people can playimport Cocoavar nums = Int[]()for _ in 1...50{ nums.append(random())}nums////冒泡排序/*var count = 0...
分类:
移动开发 时间:
2014-06-18 09:57:23
阅读次数:
303
概述:排序算法可分为比较性的排序,以及运算性的排序;这里详细介绍这些排序的原理,性能,实现,以及应用场合。前面是维基百科的介绍,这里介绍几个比较典型的算法。理论计算复杂性理论大O符号全序关系列表稳定性比较排序自适应排序排序网络整数排序交换排序冒泡排序鸡尾酒排序奇偶排序梳排序侏儒排序快速排序臭皮匠排序...
分类:
其他好文 时间:
2014-06-18 00:03:48
阅读次数:
483
2014.06.17 01:04简介: 冒泡排序是O(n^2)级别的交换排序算法,原理简单,属于必知必会的基础算法之一。思路: 排序要进行N轮,每一轮从尾部逐个向前扫描,遇到逆序对就进行交换。确保每一轮把最小的元素交换到前面去。这个过程好比水中的气泡向上飘,所以叫冒泡排序。代码非常简单,所以语言.....
分类:
编程语言 时间:
2014-06-17 23:20:33
阅读次数:
268
基数排序算法,其原理是将整数按位数切割为不同的数组,然后按每个位数分别进行比较。
基数排序的方法既可以采用LSD(Least significant digital),从键值的最右边开始,也可以采用MSD(Most significant digital),从键值的最左边开始。
基数排序法的效率主要取决于排序不同位的数字时所采用的稳定的中间排序算法。
常用的稳定的排序算法包括:插入排序、合并排序、冒泡排序、折半插入排序、基数排序等。
基数排序算法相比于其他算法...
分类:
其他好文 时间:
2014-06-17 22:55:55
阅读次数:
414
2014.06.17 01:37简介: 插入排序是最常用的O(n^2)级别的交换排序算法。之所以最常用,是因为它和选择排序、冒泡排序相比,有着自己的优势。描述: 如果数组的前i - 1个元素已经排好序,你要将第i个元素插入到其中,使得前i个元素变得有序。为了找到应该插入的位置,我们从后向前扫描,.....
分类:
编程语言 时间:
2014-06-17 21:30:02
阅读次数:
254
2014.06.17 01:17简介: 选择排序是一种O(n^2)级别的交换排序算法,属于新手必学算法。描述: 个人觉得选择排序的代码是所有排序中最直观,最符合人类大脑思维的了。当我第一次有排序的需求时(初中时自学了一点C语言,算是人生第一次写代码),我自己试着写下的代码就是选择排序,当然我上了.....
分类:
编程语言 时间:
2014-06-17 14:26:16
阅读次数:
203