关注公号「码哥字节」修炼技术内功心法,完整代码可跳转GitHub:https://github.com/UniqueDong/algorithms.git摘要:排序算法提多了,很多甚至连名字你都没听过,比如猴子排序、睡眠排序等。最常用的:冒泡排序、选择排序、插入排序、归并排序、快速排序、计数排序、基数排序、桶排序。根据时间复杂度,我们分三类来学习,今天要讲的就是冒泡、插入、选择排序算法。排序算法时
分类:
编程语言 时间:
2020-06-05 00:28:49
阅读次数:
72
#include<stdio.h> #include<stdlib.h> void print_arr(int arr[],int N) { int i; for(i=0;i<N;i++) { printf("%d ",arr[i]); } } void radix_sort(int A[],int ...
分类:
编程语言 时间:
2020-06-03 17:36:42
阅读次数:
76
初始计数排序 摘自漫画算法: 计数排序是一种不基于元素比较,利用数组索引来确定元素的正确位置的。 假设数组中有20个随机整数,取值范围0~10,要求用最快的速度把这20个整数从小到大进行排序。 如何给这些无序的随机整数进行排序呢? 考虑到这些整数只能够在0、1、2、3、4、5、6、7、8、9、10这 ...
分类:
编程语言 时间:
2020-05-31 13:01:57
阅读次数:
77
1. LeetCode Link LeetCode 1051. 高度检查器 2. Tag 数组 Optimize 3. Code 桶排序,时间复杂度$O(n)$ class Solution { public: int heightChecker(vector<int>& heights) { in ...
分类:
其他好文 时间:
2020-05-29 09:53:51
阅读次数:
66
https://ac.nowcoder.com/acm/contest/5773/A 给一个数列,求第k小的数。 一开始想的是集合、优先队列,自动排好序的容器。交上去两个都t了。 换一种思路,用个桶排序,每次遇到一个数加1,从小到大扫一遍,每遇到数列里的数计数加一,等于k时输出。 #include< ...
分类:
编程语言 时间:
2020-05-25 22:10:54
阅读次数:
98
题意: 给你一个序列,如果有一个数满足序列里的一段子序列的和等于这个数,那么就称这个数为特殊数。 请你计算有多少个特殊数。 题解: 观察数据范围,我们可以构造一个桶记录每个数的出现次数,再枚举所有前缀和统计,用完这个桶就把它清空,时间复杂度O(n^2)。一开始写的map做法也是这个复杂度不知道为什么 ...
分类:
编程语言 时间:
2020-05-23 20:33:20
阅读次数:
64
概念 桶排序 Bucket Sort 假设待排序的输入数据服从均匀、独立地分布在区间 [ 0, 1 ). 桶排序将区间 [ 0, 1)划分为 n 个相同大小的子区间, 或称为 桶 bucket. 然后, 将输入的 n 个数据分别放到各个桶中. 进而, 先对每个桶中的数进行排序, 然后遍历每个桶, 按 ...
分类:
编程语言 时间:
2020-05-18 16:16:44
阅读次数:
55
概念 桶排序 Bucket Sort 假设待排序的输入数据服从均匀、独立地分布在区间 [ 0, 1 ). 桶排序将区间 [ 0, 1)划分为 n 个相同大小的子区间, 或称为 桶 bucket. 然后, 将输入的 n 个数据分别放到各个桶中. 进而, 先对每个桶中的数进行排序, 然后遍历每个桶, 按 ...
分类:
编程语言 时间:
2020-05-18 16:13:50
阅读次数:
60
计数排序 排序思想: 对于数组 a[ ] 排序 ,先用数组c[ a[ i ] ] 记录其中的值出现的次数,然后计算前缀和;得出的值的意义就是 对于c[ a[i] ] 的值就是 对于所有的 a[ i ] 最后一个 a[ i ] 在数组中有序的排名,所以借助 ans[ ] 数组记录下标c[a[i] ] ...
分类:
编程语言 时间:
2020-05-16 12:49:20
阅读次数:
63