计数排序 一时失言乱红尘 2024-04-18 08:20 150阅读 0赞 技数排序是非比较排序,桶排序的一种 时间复杂度:O(n),空间复杂度O(n) ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NjU2NzA3_size_16_color_FFFFFF_t_70][] 用一个数组,记录每个值出现的次数。 另一个数字把记录的内容倾倒到此数组(桶)里。 不稳定的计数排序 import java.util.Arrays; /** * @Description 不稳定的计数排序 * @Author calvin * @Date 2019/9/3 21:10 **/ public class CountSort { public static void main(String[] args){ int[] arr = {2,4,2,3,7,1,1,0,0,5,6,9,8,5,7,4,0,9}; int[] result = sort(arr); System.out.println(Arrays.toString(result)); } private static int[] sort(int[] arr) { int [] result = new int[arr.length]; int[] count = new int[10]; for(int i =0;i<arr.length;i++){ count[arr[i]]++; } System.out.println(Arrays.toString(count)); for(int i =0,j=0; i<count.length;i++){ while(count[i]-- >0) result [j++] = i; } return result; } } 稳定的计数算法(像一个倒的斜坡,先分流,再从后往前补) import java.util.Arrays; /** * @Description 稳定的计数排序 * @Author calvin * @Date 2019/9/3 21:10 **/ public class CountSort { public static void main(String[] args){ int[] arr = {2,4,2,3,7,1,1,0,0,5,6,9,8,5,7,4,0,9}; int[] result = sort(arr); System.out.println(Arrays.toString(result)); } private static int[] sort(int[] arr) { int [] result = new int[arr.length]; int[] count = new int[10]; for(int i =0;i<arr.length;i++){ count[arr[i]]++; } System.out.println(Arrays.toString(count)); // for(int i =0,j=0; i<count.length;i++){ // while(count[i]-- >0) // result [j++] = i; // } for(int i=1;i<count.length;i++){ count[i]=count[i]+count[i-1]; } System.out.println(Arrays.toString(count)); for(int i =arr.length -1;i>=0;i--){ result[--count[arr[i]]] =arr[i]; } return result; } } [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NjU2NzA3_size_16_color_FFFFFF_t_70]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/17/62747da778ea44fb9473db82d61cad32.png
相关 计数排序 数排序是非比较排序,桶排序的一种 时间复杂度:O(n),空间复杂度O(n) ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_1... 一时失言乱红尘/ 2024年04月18日 08:20/ 0 赞/ 151 阅读
相关 计数排序 计数排序 冒泡、选择、插入、归并、快速、希尔、堆排序,都是基于比较的排序,平均时间复杂度最低是O(nlogn)。 计数排序、桶排序、基数排序,都不是基于比较的排序,它们 痛定思痛。/ 2023年02月20日 10:43/ 0 赞/ 57 阅读
相关 排序算法——计数排序 排序算法——计数排序 > 计数排序是一个非基于比较的排序算法。它的优势在于在对一定范围内的整数排序时,快于任何比较排序算法。 这是一种牺牲空间换取时间的做法,当O(k)> 绝地灬酷狼/ 2022年12月23日 06:57/ 0 赞/ 372 阅读
相关 【排序】计数排序 为什么记录这个 在做 [leetcode 561 题][leetcode 561]的时候,第三种解法,看了很久才明白,后来理解实际上是做了一次计数排序。 这个题,直接看 缺乏、安全感/ 2022年11月20日 02:00/ 0 赞/ 298 阅读
相关 计数排序 转载自:[http://www.cnblogs.com/eaglet/archive/2010/09/16/1828016.html][http_www.cnblogs.com Bertha 。/ 2022年08月11日 08:00/ 0 赞/ 283 阅读
相关 计数排序 计数排序,他的主要目的是对整数排序并且会比普通的排序算法性能更好。 1. 初始化一个计数数组,大小是输入数组中的最大的数。 2. 遍历输入数组,遇到一个数 布满荆棘的人生/ 2022年07月14日 01:26/ 0 赞/ 316 阅读
相关 计数排序 对于一个int数组,请编写一个计数排序算法,对数组元素排序。 给定一个int数组A及数组的大小n,请返回排序后的数组。 测试样例: [1,2,3,5,2, 系统管理员/ 2022年06月09日 01:36/ 0 赞/ 308 阅读
相关 计数排序 计数排序 算法描述:是一种通过计数来达到排序的方法。 ![20180326152550965][] 1.选出数组的最大值k,创建一个k+1长度的数组coun 素颜马尾好姑娘i/ 2022年05月28日 00:20/ 0 赞/ 327 阅读
相关 计数排序 / 计数排序:统计小于等于该元素值的元素的个数i,于是该元素就放在目标数组的索引i位(i≥0)。 计数排序基于一个假设,待排序数列的 ゝ一纸荒年。/ 2021年12月18日 05:07/ 0 赞/ 398 阅读
相关 计数排序 计数排序: 假设n个输入元素中的每一个都是在0~区间内的一个整数,其中k为某个整数。当k=O(n)是,排序时间为O(n). 基本思想:对每个输入元素x,确定小于x元素的 淡淡的烟草味﹌/ 2021年09月23日 03:22/ 0 赞/ 516 阅读
还没有评论,来说两句吧...