[TOC] 排序算法 排序算法之间的比较: 排序算法|最差时间分析| 平均时间复杂度| 稳定度| 空间复杂度 | | | | 冒泡排序| O(n^2) |O(n^2) | 稳定 |O(1) 选择排序| O(n^2) |O(n^2) |不稳定 |O(1) 插入排序| O(n^2) |O(n^2) |稳 ...
分类:
编程语言 时间:
2018-07-29 14:21:37
阅读次数:
179
排序与搜索 排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。 排序算法的稳定性 稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表 ...
分类:
编程语言 时间:
2018-07-26 22:13:27
阅读次数:
175
选择排序:一个列表被分为无序列表和有序列表,选择排序就是拿无序列表的第一个和后面的每一个相比较,每一趟选择出最小的一个,添加进有序列表。 ...
分类:
编程语言 时间:
2018-07-09 23:10:35
阅读次数:
182
(1)希尔排序: 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含 ...
分类:
编程语言 时间:
2018-07-04 22:55:55
阅读次数:
187
const int MaxValue=999; //根据实际情况选择最大值 void kwaymerge(Element *r,int k){ int i,q; r=new Element[k]; //在败者树中的k个记录 int *key=new int[k+1]; //k个排序码和建树单元key... ...
分类:
编程语言 时间:
2018-07-02 00:09:35
阅读次数:
188
B树是平衡的m路搜索树。 根结点至少两个子女,根结点以外的非失败结点至少?m/2?个子女,所有失败结点都在h+1层。 第h层至少2?m/2?h-1个结点,因此失败结点数n+1≥2?m/2?h-1个。 每个结点包含一组指针recptr[m],指向实际记录的存放地址。recptr[i]与key[i]形成 ...
分类:
编程语言 时间:
2018-07-01 22:06:55
阅读次数:
213
要说快排的原理,通俗点说就是把一个事情,分成很多小事情来处理,分治的思想。 假设我们现在对“6 1 2 7 9 3 4 5 10 8”这10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。一般选第一个数6作为基准数。接下 ...
分类:
编程语言 时间:
2018-06-30 14:36:24
阅读次数:
171
学习更多算法系列请参考文章:死磕算法之汇总篇 今天讲一下希尔排序,希尔排序呢,其实可以理解为插入算法排序的一个升级版了,不了解插入排序的小伙伴可以先看一下这篇文章:死磕算法之插入排序 我们知道,插入排序在进行排序时如果当数据量很大的时候,有一个很小的数据出现在了数组的最后,那么我们就要移动了这个数据 ...
分类:
编程语言 时间:
2018-06-29 22:56:26
阅读次数:
192
排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。 排序算法的稳定性 稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是 ...
分类:
编程语言 时间:
2018-06-26 18:36:08
阅读次数:
216
测试于:MySQL 5.5.25 当前测试的版本是Mysql 5.5.25只有BTree和Hash两种索引类型,默认为BTree。Oracle或其他类型数据库中会有Bitmap索引(位图索引),这里作为比较也一起提供。 BTree索引 BTree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用 ...
分类:
数据库 时间:
2018-06-05 15:36:23
阅读次数:
238