排序有很多种但是 就看你会哪一种了! 选择排序 O(𝑛2) 插入排序 O(𝑛2) 冒泡排序 O(𝑛2) 计数排序 O(𝑛 + 𝑚) 基数排序 O (𝑛 log 𝑚) 桶排序 O(𝑛)~O(𝑛2) 归并排序 O(𝑛 log 𝑛)堆排序 O(𝑛 log 𝑛)快速排序 O(𝑛 ...
分类:
编程语言 时间:
2019-02-15 19:40:40
阅读次数:
198
运行结果: 排序:略 运行时间:3.256秒(跟桶排序比差了不止一点- -) ...
分类:
编程语言 时间:
2019-02-14 22:23:14
阅读次数:
213
需要考虑以下问题: 1、桶的大小,这里我们可以根据输入的元素的个数来确定桶的大小。 2、怎么样确定当前元素进入哪一个桶,这里我们使用到的是通过一个哈希函数来进行计算。 3、因为输入的数据是随机的,所以有可能在一个桶中分布着好几个数据,那么怎么样维持在一个桶中的顺序呢?因为涉及到桶中元素的数量的不确定 ...
分类:
编程语言 时间:
2019-02-14 11:53:08
阅读次数:
141
本文将介绍3区基数快速排序、后缀排序法。 1. 前文回顾 在字符串算法—字符串排序(上篇)中,我们介绍了键索引计数法、LSD基数排序、MSD基数排序。 但LSD基数排序要求需排序字符串的长度一致;MSD基数排序虽然对字符串的长度没要求,但其递归循环里的每次循环都需要进行很多操作,且需要额外的空间。 ...
分类:
编程语言 时间:
2019-02-14 09:12:13
阅读次数:
218
几种排序算法的时间复杂度: 1、插入排序 1 #include <iostream> 2 #include <fstream> 3 #include <string> 4 5 const int maxn = 10005; 6 int arr[maxn]; 7 int n; 8 9 void ins ...
分类:
编程语言 时间:
2019-02-06 11:59:40
阅读次数:
166
计数排序 假设一个数组arr[0...n] 找到最大的值max 然后新建一个数组book[0...max]={1} 遍历数组arr,arr[i]=j book[j]++ 最后遍历数组book[0...max] b[i]=b[i-1]+b[i] #include<iostream> #include< ...
分类:
编程语言 时间:
2019-02-05 23:50:47
阅读次数:
215
题目描述 楠楠最近在研究南海区5年级英语成绩的排序有关算法,如果数列中的数是从小到大排列的,则称有序的。研究中对于没有排好序的数列,要统计每个数前面有多少比它大的数字。比如有5个数的数列:3 1 4 2 5,则第1个数3之前有0个数比它大;第2个数1之前有1个数比它大;第3个数4之前有0个数比它大; ...
分类:
其他好文 时间:
2019-02-04 23:20:54
阅读次数:
329
桶排序 概述 桶排序Bucket Sort从1956年就开始被使用,该算法的基本思想是由E. J. Issac R. C. Singleton提出来。 桶排序是一种效率很高的排序算法,它的时间复杂度为O(N+M),(N个元素,范围为0 M),但桶排序有一定的限制,必须为非负整数,而且元素不宜过大 设 ...
分类:
编程语言 时间:
2019-02-01 18:07:31
阅读次数:
197
嗯... 在c++中排列的方法有很多,最简单的便是sort排序....(鬼畜的STL库!! 但是有一种排序叫做计数排序(它是与桶排序不同的),虽然它们的时间复杂度都是O(n),但是计数排序比桶排序更稳定.... 下面就根据代码看一下计数排序的模板以及其原理: 注意:在计数排序中,一般最大可适用于10 ...
分类:
其他好文 时间:
2019-02-01 13:11:40
阅读次数:
160
基数排序算是桶排序和计数排序的衍生吧,因为基数排序里面会用到这两种其中一种。 基数排序针对的待排序元素是要有高低位之分的,比如单词adobe,activiti,activiti就高于adobe,这个是根据ascll码来的。 现在我们可以提出一个问题,怎样对字典里面的单词进行排序呢? 比如我们现在有如 ...
分类:
编程语言 时间:
2019-01-30 23:14:16
阅读次数:
227