本蒟蒻最近在学习后缀数组,发现其需要借助基数排序来实现,于是便上网学习了一波,很简单的排序,其主要思想是:把从低位到最高位依次作为关键字插入桶中,最后就有序了。它的代码更是易懂简单,下附代码: ...
分类:
编程语言 时间:
2017-07-08 14:39:57
阅读次数:
213
排序算法 -- 目录 桶排序 (Bucket sort)或所谓的箱排序的原理是将数组分到有限数量的桶子里,然后对每个桶子再分别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序),最后将各个桶中的数据有序的合并起来。 排序过程: Data Structure Visualizatio ...
分类:
编程语言 时间:
2017-07-05 20:00:04
阅读次数:
164
其实这是昨天的事了。(现在时间回到一天前) 今天的主要内容是强连通分量的割点与桥 一下给出割点和桥的写法 我还刷了一道水题 本题涉及到桶排序 挺简单的 题目:明明的随机数;见codevs1075 本文由Yzyet编写,网址为www.cnblogs.com/Yzyet。非Yzyet同意,禁止转载,侵权 ...
分类:
其他好文 时间:
2017-07-03 22:29:58
阅读次数:
214
源码例如以下: #include <stdlib.h> #include <stdio.h> typedef struct QUEUEnode* link; struct QUEUEnode{ int item ; link next; link head , tail; }; link NEW(i ...
分类:
编程语言 时间:
2017-07-03 16:28:26
阅读次数:
159
基数排序:先按照最低位进行排序,然后对倒数第二位,以此类推。基于计数排序的基础上的一种排序方法。属于稳定排序,时间复杂度O(n),以空间换时间,需要额外的辅助空间。 计数排序:假设n个输入元素的每一个都是在0到k区间内的一个整数,其中k是一个整数。运行时间是O(n). 计数排序的基本思想是:对每一个 ...
分类:
编程语言 时间:
2017-07-03 00:55:34
阅读次数:
313
设计思想 它是根据关键字中各位的值,通过对排序的N个元素进行若干趟“分配”与“收集”来实现排序的。它不要比较关键字的大小。 假设:R {50, 123, 543, 187, 49, 30, 0, 2, 11, 100} 任何一个阿拉伯数,它的各个位数上的基数都是以0~9来表示的。所以我们不妨把0~9 ...
分类:
编程语言 时间:
2017-07-02 17:11:57
阅读次数:
203
本文Python实现了插入排序、基数排序、希尔排序、冒泡排序、高速排序、直接选择排序、堆排序、归并排序的后面四种。 上篇:Python学习(三) 八大排序算法的实现(上) 1.高速排序 描写叙述 通过一趟排序将要排序的数据切割成独立的两部分,当中一部分的全部数据都比另外一部分的全部数据都要小,然后再 ...
分类:
编程语言 时间:
2017-06-29 09:56:09
阅读次数:
211
第一、随意一个比較排序算法在最好情况下的时间复杂度也是O(nlogN); 第二、计数排序 如果n个输入元素的每个都是介于0到k之间的整数,计数排序可用,须要暂时存储空间O(K),时间复杂度是O(n). #include <iostream> using namespace std; void cou ...
分类:
编程语言 时间:
2017-06-28 20:33:45
阅读次数:
165
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法, 冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。 冒泡法: 这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: 复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。 直接插入排序:O(n* ...
分类:
编程语言 时间:
2017-06-28 11:56:24
阅读次数:
198