计数排序
来源:互联网 发布:java离线地图开发 编辑:程序博客网 时间:2024/05/29 15:33
package com.study.arithmetic;/** * 计数排序:假设n个输入数据都介于0到k之间的整数 */
public class CountingSort {
public void countingSort(int[] oriArray, int[] goalArray, int k) {
int[] assArray = new int[k];
for(int i = 0; i < oriArray.length; i++) {
assArray[oriArray[i]]++; // assArray[i] 表示包含等于i元素的个数
}
for(int i = 1; i < k; i++) {
assArray[i] += assArray[i-1]; // assArray[i] 表示包含小于或等于i元素的个数
}
for(int i = oriArray.length - 1; i >= 0; i--) {
goalArray[assArray[oriArray[i]]-1] = oriArray[i];
assArray[oriArray[i]]--;
}
}
public static void main(String[] args) {
CountingSort sort = new CountingSort();
int[] oriArray = new int[]{4,1,3,2,16,9,10,14,7,7};
int[] goalArray = new int[oriArray.length];
sort.countingSort(oriArray, goalArray, 17);
for(int i = 0; i<goalArray.length; i++)
System.out.println(goalArray[i]);
}
}求出[a, b] 这个范围内的数字个数,只需用:assArray[b] - array[a-1] .
0 0
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- KMP C++实现代码
- XSS防脚本注入的过滤器
- IOS开发------图片浏览器
- TreeSet存储自定义对象,并对对象排序的两种方式
- nats介绍
- 计数排序
- Effective C++ 45-48
- 用select检查套接口是否可读
- 关于开源软件的使用
- Netstat 命令详解
- UVA - 10494 If We Were a Child Again
- [机器学习]基于OpenCV实现最简单的数字识别
- Git教程
- Mysql查询大小写不敏感简便解决办法