题目 插入排序法由未排序的后半部前端取出一个值。插入已排序前半部的适当位置。概念简单但速度不快。 排序要加快的基本原则之中的一个: 是让后一次的排序进行时,尽量利用前一次排序后的结果,以加快排序的速度,Shell排序法即是基于此一概念来改良插入排序法。 解法 Shell排序法最初是D.L Shell ...
分类:
编程语言 时间:
2017-08-10 11:44:00
阅读次数:
133
2007 提高组题解 第一题 一开始还想是不是要用哈希表储存呢,但仔细想了一会儿,那个数据量20W 用个快排序,时间是能过的。所以这道题用个STL的快排,再一个循环统计个数就OK了。但最后交上去评测时0分,很尴尬。就是我在数据初始化时从一开始计数,我循环又从一开始,你懂的,多算了一次,爆掉了。改了就 ...
分类:
其他好文 时间:
2017-06-18 16:46:17
阅读次数:
201
题目: 选择排序法的概念简单,每次从未排序部份选一最小值,插入已排序部份的后端,其时间主要花费于在整个未排序部份寻找最小值。假设能让搜寻最小值的方式加 快,选择排序法的速率也就能够加快 Heap排序法让搜寻的路径由树根至最后一个树叶,而不是整个未排序部份。从而能够加快排序的过程,因而称之为改良的选择 ...
分类:
编程语言 时间:
2017-04-29 13:45:12
阅读次数:
156
快速排序 1.快速排序是有冒泡排序改进的来的。在冒泡排序的过程中,只对相邻的两个记录进行比较,因此每次交换两个相邻记录时只能消除一个逆序。如果通过两个不相邻记录进行交换,消除多个逆序,则会大大加快排序的速度。快速排序方法中一次交换可以消除多个逆序 算法方法: 从右侧找第一个比key值小的进行交换,从 ...
分类:
编程语言 时间:
2017-04-22 17:35:40
阅读次数:
220
/* 说明: 插入排序法由未排序的后半部分前端取出一个值,插入已排序前半部分的适当位置,概念简单但速度不快。 排序要加快的基本原则之一,是让后一次的排序进行时,尽量利用前一次排序后的结果,以加快排序的速度,Shell排序法即是基于此一概念来改良 插入排序法。 解法: 略 */ #include #i... ...
分类:
编程语言 时间:
2017-02-01 18:52:19
阅读次数:
219
## 2016年11月15日### 傲世堂 电话面试- 第一个问题是前15%输出多少,20%输出多少,问你平均数多少。第一题愣是没懂啥意思,结果面试官说,那好跳过这一题。- 后面问了图的存储结构有哪些?- 堆排序和快排序的时间复杂度分别是多少?- map和set中哪一个可以由另一个得到?- 四个随机 ...
分类:
编程语言 时间:
2016-11-15 20:05:11
阅读次数:
224
总结: NO.1 入门级排序算法 冒泡排序(优化后) NO.2 实操中最快排序算法 快速排序 NO.3 比快速排序更快的排序算法 桶式排序(排序确定在某个范围内的整数时) ...
分类:
编程语言 时间:
2016-09-04 01:31:29
阅读次数:
240
#include<stdio.h>#include<stdlib.h>#include<string.h> #define SIZE 100 //从小到大排序int comp1(const void *x,const void *y){ return *(int *)x - *(int *)y;} ...
分类:
编程语言 时间:
2016-06-04 14:48:05
阅读次数:
279
这是笔记; 快速排序的思想:先说一趟划分:一个数组a[0...(length-1)],把数组的第一个元素当作枢轴v(是vlaue,不是下标),将数组中所有比k小的元素都移动到k的左侧,将所有比v大的元素都移动到元素的右边。 我们需要得到一个数组划分后,枢轴v现在的位置下标(这是下一步进行划分的边界) ...
分类:
编程语言 时间:
2016-05-11 19:47:20
阅读次数:
190
作用当表数据量很大的时候,进行查询操作时I/O开销会很大,此时可以考虑建立索引减小系统开销.建立索引注意点1.索引应该建立在where语句使用频率高的列上2.索引建立在经常进行排序的列上,可加快排序速度3.索引使用的列个数不是越多越好,列的个数会影响insert和delete操作速度4.在建立索引时...
分类:
数据库 时间:
2015-11-08 22:16:46
阅读次数:
265