1 void countingSort(array &a, int k) //a中皆为整数,范围为0到K-1 2 { 3 array c(k, 0); 4 for (int i = 0; i b(a.length); 9 for (int i = a.length-1; ...
分类:
编程语言 时间:
2015-05-16 23:08:56
阅读次数:
186
http://poj.org/problem?id=3581这题说是给了N个数字组成的序列A1 A2 ..An 其中A1 大于其他的数字 , 现在要把序列分成三段并将每段分别反转求最小字典序以后还是老老实实用基数排序 用sort wa 了 一晚#include #include #include #...
分类:
编程语言 时间:
2015-05-12 10:55:00
阅读次数:
245
目录简介交换排序冒泡排序快速排序插入排序直接插入排序希尔排序选择排序简单选择排序堆排序归并排序基数排序总结简介排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记 录序列。分内部排序和外部排序。若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之,若...
分类:
编程语言 时间:
2015-05-09 21:45:48
阅读次数:
245
本文转载最近需要对大小在0到100万内的很多数组进行排序,每一个数组的长度都不固定,短则几十,长则几千。为了最快完成排序,需要将数组大小和数据范围考虑进去。由于快速排序是常规排序中速度最快的,首选肯定是它。但是数组中数据的范围固定,可以考虑基数排序。为了使排序耗时尽可能短,需要测试这两种排序算法。快...
分类:
编程语言 时间:
2015-05-09 20:19:42
阅读次数:
313
排序算法可以分为稳定排序和不稳定排序。在简单形式化一下,如果A[i] = A[j],A[i]原来在位置前,排序后A[i]还是要在A[j]位置前,这才能叫稳定排序。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。基数排序就是这样,先按低位排序,逐次按高位排序,低位相同的元素其顺序再高位也相同时是不会改变的。另外,如果排序算法稳定,对基于比较...
分类:
编程语言 时间:
2015-05-06 10:59:54
阅读次数:
103
转载自:http://www.cnblogs.com/sevenyuan/archive/2009/12/04/1616897.html冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。 1 代码 2 3 Code highligh...
分类:
编程语言 时间:
2015-05-05 23:20:04
阅读次数:
131
欢迎指出代码不足
参考书本:严蔚敏《数据结构 .C语言版》
// RadixSort.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#define MAX_SIZE 1000//最大空间
#define RADIX 10//关键字基数
#define KEY_NUM 3//关键字个数
struct SLNode{//静态链表节点
int key...
分类:
编程语言 时间:
2015-05-04 12:04:48
阅读次数:
226
使用list实现了排序的中比较简单的插入排序,箱子排序和基数排序,其中,箱子排序和基树排序只能用于数的排序,所以限制还是蛮大的,箱子排序在实际使用中基本上不使用,箱子排序是基数排序的基础,基数排序有MSD和LSD,MSD也就是从最高位开始向最低位排序,LSD也就是从最低位向最高位排序。下面附上我的实现代码://=============================================...
分类:
编程语言 时间:
2015-04-29 17:15:27
阅读次数:
201
1 package sorting; 2 3 /** 4 * 基数排序 5 * 平均O(d(n+r)),最好O(d(n+r)),最坏O(d(n+r));空间复杂度O(n+r);稳定;较复杂 6 * d为位数,r为分配后链表的个数 7 * @author zeng 8 * 9 */10...
分类:
编程语言 时间:
2015-04-25 22:36:40
阅读次数:
226
妈呀被后缀数组虐的死去活来。。。一开始去看后缀树。。好像很麻烦的样子,后来再看后缀数组,理论好像很好懂的样子,不会实现呀。。
这充分证明了我有多傻逼,花了整整一天才看懂如何实现,还是因为我基数排序没学好?。。。
(update:然后又花了一天看懂求height。。。)
好好看这张图。。。很重要。。
无脑直接排序的时间复杂度是O(n^2logn)因为字串比较是O(n)
这里介绍...
分类:
编程语言 时间:
2015-04-22 09:33:43
阅读次数:
132