基数排序(桶排序): 设置若干个箱子,将关键字为k的记录放入第k个箱子中,然后按序号将非空的连接。而数字是有范围的,若待排元素均由0-9这十个数字组成,则只需设置十个箱子,相继按个、十、百...进行排序 平均,最坏时间复杂度 O(k*(n+m)) k是关键字的个数,如个位、十位分别就是关键字;n是元 ...
分类:
编程语言 时间:
2020-04-19 14:52:31
阅读次数:
55
public void countingsort(int[] array, int[] b, int k) { //创建数组c int[] c = new int[k+1]; for(int i=0;i<c.length;i++) { c[i] = 0; } //统计数组array中每个元素出现的次 ...
分类:
编程语言 时间:
2020-04-18 13:38:32
阅读次数:
56
堆排序,快速排序的时间复杂度为nlog(n)。他们都是运用比较排序的结果。好比决策树模型。 属于线性时间排序的算法有:计数排序,基数排序和桶排序。 计数排序: 先分别求出每个元素的频数,不过如果元素值较大时,比较浪费内存空间。 def Counting_Sort(A,B,k): for i in r ...
分类:
编程语言 时间:
2020-04-17 21:52:51
阅读次数:
68
算法 1、排序算法 冒泡排序 选择排序 插入排序 快速排序 希尔排序 计数排序 2、列表查找 从列表中查找指定的元素 顺序查找 从列表第一个元素开始,顺序进行搜索,直到找到为止 二分查找 从有序列表的候选区data[0: n]开始,通过对待查找的值与候选区中的值比较使候选区的值减半 数据结构与算法动 ...
分类:
编程语言 时间:
2020-04-07 09:58:34
阅读次数:
98
计数排序 基本思想 ? 计数排序对一定量的整数排序的速度非常快,一般快于其他排序算法。但计数排序局限性比较大,只限于对整数进行排序。 对于一个输入数组中的一个元素i,只要我们知道了这个数组中比i小的元素的个数x,那么我们就可以直接把i放到第(x+1)个位置,即i的索引为x(索引从0开始)。 算法步骤 ...
分类:
编程语言 时间:
2020-04-05 00:23:43
阅读次数:
85
计数排序优化版:引用:https://www.cnblogs.com/xiaochuan94/p/11198610.html基础版能够解决一般的情况,但是它有一个缺陷,那就是存在空间浪费的问题。比如一组数据{101,109,108,102,110,107,103},其中最大值为110,按照基础版的思 ...
分类:
编程语言 时间:
2020-04-04 14:24:53
阅读次数:
59
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; //给你n个整数,请按从大到小的顺序输出前m大的数 //定义一个辅助数组,数组下标是原数组的数字, c ...
分类:
编程语言 时间:
2020-04-02 19:59:17
阅读次数:
115
Q:给定一个包含红色、白色和蓝色,一共n个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排序。 此题中,我们使用整数0、1和2分别表示红色、白色和蓝色。 【示例】 输入:[2, 0, 2, 1, 1, 0] 输出:[0, 0, 1, 1, 2, 2] 【注意】 不 ...
分类:
其他好文 时间:
2020-03-21 23:10:13
阅读次数:
59
@[toc] 插入排序 二分插入排序 选择排序 选择排序 冒泡排序 快速排序 堆排序 归并排序 桶排序 计数排序 ...
分类:
编程语言 时间:
2020-03-18 09:53:29
阅读次数:
66
总排序趟数与初始状态无关的有:(除了快速排序和优化的冒泡,其他都是) 算法复杂度与初始状态无关的有:堆排序、归并排序、选择排序、基数排序。 元素总比较次数与初始状态无关的有:选择排序、基数排序。 元素总移动次数与初始状态无关的有:归并排序、基数排序。 快速排序的最坏情形是数组为正序或逆序,如果pos ...
分类:
其他好文 时间:
2020-02-27 16:17:30
阅读次数:
69