通常所说的排序算法往往指的是内部排序算法,即数据记录在内存中进行排序。 排序算法大体可分为两种: 一种是比较排序,时间复杂度O(nlogn)~O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序 另一种是非比较排序,时间复杂度可以达到O(n),主要有:基数排序,基数排序,桶 ...
分类:
编程语言 时间:
2018-07-21 21:33:03
阅读次数:
164
冒牌排序(BubbleSort) 冒泡排序是一种比较简单的排序算法,它循环走过需要排序的元素,依次比较相邻的两个元素,如果顺序错误就交换,直至没有元素交换,完成排序。 若对n个人进行排序,我们需要n-1次比较,所以第k次比较需要进行n-k次比较。排序算法通过以数据对象的两两比较作为关键,所以可以得出 ...
分类:
编程语言 时间:
2018-06-17 19:00:01
阅读次数:
136
前面讲的是比较排序算法,主要有冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。 非比较排序算法:计数排序,基数排序,桶排序。在一定条件下,它们的时间复杂度可以达到O(n)。 一,计数排序(Counting Sort) (1)算法简介 计数排序(Counting sort)是一种稳定的排序 ...
分类:
编程语言 时间:
2018-06-08 00:51:06
阅读次数:
245
mysql 数据库表: COLLATE 关键字是什么意思? 关键字 collation_name 按照二进制编码比较排序,主要是对字符集之间的比较和排序,可以通过 show collation查看所有的校对集。 官方解释:是应用于表达式、列定义或数据库定义的排序规则的名称。 collate的名字包括 ...
分类:
其他好文 时间:
2018-06-07 19:40:40
阅读次数:
161
chrome中测试sort方法 发现排序失效,查过资料发现,js数组的sort方法总会以第一个字符的ASCII值来进行比较排序 解决办法一:给sort方法指定一个比较函数作为参数,如下图 解决办法二:自己一个排序算法,自己造轮子 ...
分类:
编程语言 时间:
2018-05-06 00:12:01
阅读次数:
244
第一种思路,把两个数组合为一个数组然后再排序,问题又回归到冒泡和快排了,没有用到两个数组的有序性。(不好) 第二种思路,循环比较两个有序数组头位元素的大小,并把头元素放到新数组中,从老数组中删掉,直到其中一个数组长度为0。然后再把不为空的老数组中剩下的部分加到新数组的结尾。(好) 第二种思路的排序算 ...
分类:
编程语言 时间:
2018-05-01 20:20:16
阅读次数:
497
每天学习一点点 编程PDF电子书、视频教程免费下载: http://www.shitanlife.com/code ...
分类:
编程语言 时间:
2018-04-12 17:57:49
阅读次数:
233
//分治思想//分类 内部比较排序//数据结构 数组//最差时间复杂度 每次选取的基准都是最大或者最小的元素,导致每次只划分出//了一个分区。需要进行n-1次划分才能结束递归,时间复杂度为O(n^2)//最优时间复杂度 每次选取的基准都是中位数,这样每次都均匀的划分出两个区域//只需要logn次划分 ...
分类:
编程语言 时间:
2018-03-27 20:49:25
阅读次数:
245
问题一:关于Comparable与Comparator接口: Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Co ...
分类:
其他好文 时间:
2018-03-08 22:55:15
阅读次数:
179
1、排序分类 比较排序:冒泡排序、选择排序、插入排序、归并排序、堆排序、快速排序(时间复杂度O(nlogn)~O(n^2)) 非比较排序:计数排序、基数排序、桶排序(时间复杂度O(n)) 2、冒泡排序 方法: // 分类 内部比较排序 // 数据结构 数组 // 最差时间复杂度 O(n^2) // ...
分类:
编程语言 时间:
2018-03-03 19:29:22
阅读次数:
176