各类排序算法的时间复杂度 排序算法概述: 排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序可以分为以下几类: (1)、插入排序:直接插入排序、二分法插入排序、希尔排序。 (2)、选 ...
分类:
编程语言 时间:
2017-11-28 11:43:16
阅读次数:
161
一、如何评价算法优劣 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序:所有排序操作都在内存中完成;外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行; 时间复杂度: 一个算 ...
分类:
编程语言 时间:
2017-11-27 23:43:13
阅读次数:
214
/* *插入排序理论我就不写了,网络上应该多的是,比我要好。*今天练习一下插入排序,插入排序还是比较稳定的一个算法,不算太坏。适用于少量数据*在最坏情况下才是O(n^2),最好情况O(n),因为最好情况下,不需要内排序了呀。*为了惩罚自己,再写一遍,还是写到熟练吧,额额。。。*/ /******** ...
分类:
编程语言 时间:
2017-11-05 17:21:53
阅读次数:
151
/* 做法一:按h sort一遍,对于一段区间[i,j],高度花费就是h[j]-h[i] 然后枚举区间,把区间内C排序,一个一个尽量选即可。 n^3logn 标算:n^3 dp 高度排序,保证从前往后调。 f[i][j]表示当前在第i栋楼,已经跳了j次楼的最小话费。转移枚举下一次跳那座楼。 f[k] ...
分类:
其他好文 时间:
2017-10-29 23:26:34
阅读次数:
412
1.使得序列成为一个按关键字有序的序列,这样的操作称为排序。 2.排序的稳定性:稳定和非稳定的 3.内排序与外排序: 内排序:是在排序整个过程中,待排序的所有记录全部被放置在内存中。 外排序:由于排序的记录个数太多,不能同时放置在内存,整个排序过程需要在内外存之间多次交换数据才能进行。 内排序:性能 ...
分类:
编程语言 时间:
2017-10-24 19:36:51
阅读次数:
177
参考博文:http://www.cnblogs.com/MOBIN/p/4681369.html 快速排序是冒泡排序的改进版,也是最好的一种内排序,在很多面试题中都会出现 思想: 1.在待排序的元素中任取一个元素作为基准(通常选第一个元素,但最好的选择方法是从待排序元素中随机选取一个作为基准),称为 ...
分类:
编程语言 时间:
2017-09-05 12:35:39
阅读次数:
273
http://blog.csdn.net/shellching/article/details/8292338 所有SSD配置的最近生效费率查询 select * from billing_rates_tbl as tt wheresub_res_id like "%ssd::%"and res_t ...
分类:
数据库 时间:
2017-08-31 16:13:08
阅读次数:
222
最近业务反馈一个查询异常的问题,需要DBA对查询结果异常给出解释,并帮助他们解决该问题。问题本质是一个组内排序取最大值的问题,根据业务需求,我构建了测试用例 测试用例 --建表 create table testorder (id int not null, no int not null, nam ...
分类:
数据库 时间:
2017-08-30 15:48:35
阅读次数:
219
第九章 排序 假设ki=kj(1≤i≤n,1≤j≤n,i≠j),且在排序前的序列中ri领先于rj(即i<j)。如果排序后ri仍领先于rj,则称所用的排序方法是稳定的;反之,若可能使得排序后的序列中rj领先ri,则称所用的排序方法是不稳定的。 内排序是在排序整个过程中,待排序的所有记录全部被放置在内存 ...
分类:
其他好文 时间:
2017-08-28 19:56:39
阅读次数:
95
原来GROUP_CONCAT中,是支持GROUP内排序的,自己好土。。 ...
分类:
数据库 时间:
2017-08-21 14:43:57
阅读次数:
169