计数排序算法
来源:互联网 发布:新浪微博seo 编辑:程序博客网 时间:2024/06/11 15:59
/*
* T(n)=O(n)
* 不是基于比较的排序算法
* 思想基于桶排序(类似于ASCII码排序)
* 1、找出数组内的最大最小值
* 2、声明最大值长度的数组
* 3、遍历原来的数组,将每个元素对应声明的辅助数组的下标做出标记(即累加)
*
*/
public class 计数排序 {
public int[] countingSort(int []A,int n){
int max=A[0];
int min=A[0];
for(int i=0;i<n;i++){
max=Math.max(max, A[i]);
min=Math.min(min, A[i]);
}
int countIndex[]=new int [max-min+1];
for(int i=0;i<A.length;i++){
countIndex[A[i]-min]++;
}
int index=0;
for(int i=0;i<max-min+1;i++){
for(int j=0;j<countIndex[i];j++){
A[index++]=i+min;
}
}
return A;
}
}
* T(n)=O(n)
* 不是基于比较的排序算法
* 思想基于桶排序(类似于ASCII码排序)
* 1、找出数组内的最大最小值
* 2、声明最大值长度的数组
* 3、遍历原来的数组,将每个元素对应声明的辅助数组的下标做出标记(即累加)
*
*/
public class 计数排序 {
public int[] countingSort(int []A,int n){
int max=A[0];
int min=A[0];
for(int i=0;i<n;i++){
max=Math.max(max, A[i]);
min=Math.min(min, A[i]);
}
int countIndex[]=new int [max-min+1];
for(int i=0;i<A.length;i++){
countIndex[A[i]-min]++;
}
int index=0;
for(int i=0;i<max-min+1;i++){
for(int j=0;j<countIndex[i];j++){
A[index++]=i+min;
}
}
return A;
}
}
阅读全文
0 0
- 排序算法:计数排序
- 排序算法-计数排序
- 【排序算法】计数排序
- 【排序算法】:计数排序
- 计数排序算法
- 算法-----计数排序
- 计数排序算法
- 算法导论 计数排序
- 计数排序算法
- 算法入门--计数排序
- 算法系列-计数排序
- 算法系列-计数排序
- 【算法导论】计数排序
- 【算法】计数排序
- 【算法导论】计数排序
- 算法系列-计数排序
- 计数排序算法
- 计数排序算法详解
- Wi-Fi产品5G频段EVM测试不过问题的分析解决
- 【Linux学习笔记】30:declare命令(声明/取消/查看变量类型)
- 基数排序算法
- Java_基础—GUI(创建一个窗口并显示/布局管理器)
- mysql允许远程连接
- 计数排序算法
- C++ 快排算法
- 在Ubuntu 16.04 上搭建Hyperledger Fabric 1.0
- python多版本环境搭建 和 hello word 程序
- Win7 64位 + VS2015 +Opencv3.3.0重编译
- STL源码剖析——内存空间管理
- H5 游戏 俄罗斯方块 双人互动游戏
- Linux 2.x 内核对内存的管理
- 深度学习系统搭建(Ubuntu14.04+cuda8.0+cudnn6.0+tensorflow1.3+opencv+pycharm)