数据结构排序算法之——桶排序(Bucket sort) 插入排序想关链接: 维基百科:https://zh.wikipedia.org/wiki/%E6%A1%B6%E6%8E%92%E5%BA%8F 极客学院想关介绍:http://wiki.jikexueyuan.com/project/easy ...
分类:
编程语言 时间:
2016-09-15 22:52:24
阅读次数:
328
虽然排序算法是一个简单的问题,但绝对是笔试面试的基础考点,重重之重。来个排序问题都没回答出来,留给面试官的印象也就那样了。 排序主要分为: 比较排序:快速排序、堆排序、归并排序、插入排序、希尔排序、选择排序、冒泡排序 非比较排序:基数排序、计数排序、桶排序 性能比较点: 时间复杂度:一般而言,好的性 ...
分类:
编程语言 时间:
2016-08-23 21:53:29
阅读次数:
392
原文链接: http://blog.csdn.net/MoreWindows/article/category/859207 1.冒泡排序 核心思路: 双重循环 外层是进行多少轮,一轮冒泡只能排好一个数,所以有n轮;(这是最好的理解方式) 内层是单次冒泡,冒泡的核心是逐个,相邻元素两两比较,如此,一... ...
分类:
编程语言 时间:
2016-07-31 15:52:54
阅读次数:
208
归并排序是一种比较重要、稳定的排序。他的核心思想是分治,也就是二分法,实现方法是递归。递归函数可以让我们到达最小单元使最小单元有序,进而向上级回溯,不断的调整更大的单元,最终使整个序列有序。 代码及样例如下: 55 4 3 2 16 1 25 4 2 6 3 3 5 4 215879789 15 2 ...
分类:
编程语言 时间:
2016-06-25 20:28:55
阅读次数:
152
请尊重个人劳动成果,转载注明出处,谢谢! http://blog.csdn.net/amazing7/article/details/51603682 ## 一、对比分析图 均按从小到大排列 k代表数值中的”数位”个数 n代表数据规模 m代表数据的最大值减最小值 稳定性:稳定排序算法会让原本有相等键 ...
分类:
编程语言 时间:
2016-06-22 15:27:42
阅读次数:
373
对比分析图; 九种算法原理、效率、java代码;补充:快排的partition函数、冒泡排序的改进、快熟排序的优化...
分类:
编程语言 时间:
2016-06-07 16:25:30
阅读次数:
246
在上一篇博客中,主要是实现各种的排序算法,并针对一些算法进行了优化的处理,下面主要讨论一下非比较排序的算法(计数排序、基数排序),同时并对各种排序算法的性能、时间复杂度、空间复杂度、优缺点、以及适用场景做总结分析。1.计数排序主要思想:主要是需要统计次数,使..
分类:
编程语言 时间:
2016-05-23 19:34:01
阅读次数:
230
堆排序 概念: 第一个非叶子节点: 小于size/2的部分; 非叶子节点的区间: [0, size/2); (注意是左闭右开) 最大堆:满足父节点head, arr[head]<=arr[2*head+1] && arr[head]<=arr[2*head+2] 非叶子节点的子树才需要调整(没有子节 ...
分类:
编程语言 时间:
2016-04-24 14:14:40
阅读次数:
254
面试中经常碰到排序算法的问题,所以这里把常用的几种排序总结一下 线性时间排序 计数排序:首先统计每个数的个数,然后直接得出有序的序列。时间复杂度O(n + k),空间复杂度O(k),k表示数组中最大的数 不稳定 基数排序:从最低位开始,先按照该位的大小排序,然后按照次低位的大小排序.......最后 ...
分类:
编程语言 时间:
2016-04-21 23:39:42
阅读次数:
318
#pragmaonce
#include<iostream>
#include<assert.h>
usingnamespacestd;
//直接排序:指的是设定2个下标/指针。然后从下标1开始进行比较,
//升序情况下:若在前的下标/指针大于当前比较数值。就进行数组的后移。
//直到满足当前序列值。然后最终将当前比较数值..
分类:
编程语言 时间:
2016-04-21 11:57:20
阅读次数:
211