计数排序
来源:互联网 发布:电视软件(无需联网) 编辑:程序博客网 时间:2024/06/05 15:39
计数排序(Counting Sort)
@[计数排序|算法]
计数排序是一种线性时间复杂度的排序算法。其特点是:
- 时间复杂度 :
Θ(k+n) ; - 稳定性 :具有相同值的元素在输出数组的相对次序和输入数组一致;
- 局限性 :只适用于整数排序,且实际应用中要求输入数组数值范围k不能太大。
- 计数排序Counting Sort
- 前提假设
- 基本思想
- 代码实现
前提假设
- 假设输入数组Arr的元素满足:
Arr[i]∈{1,2,3,…,k} 。 - 输入未排序数组
A[1,…,n] ,输出已排序数组B[1,…,n] ,临时存储空间:C[0,1,…,k] 。
基本思想
对每一个输入元素
代码实现
void CountingSort(int A[],int B[],int k){ int i,C[k+1]; for(i=0,i<=k,i++){ // let C[0,...,k]=0 C[i] = 0; } for(i=0,i<A.length,i++){ // counting numbers C[A[i]] = C[A[i]]+1; } for(i=1,i<=k,i++){ C[i] = C[i]+C[i-1]; } for(i=A.length-1,i>=0,i--){ B[C[A[i]]] = A[i]; C[A[i]] = C[A[i]]-1; }}
0 0
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 10.撤销修改
- 11.删除文件
- 手势冲突---UITableView删除, 自定义侧滑返回,UIScroll的手势冲突
- mysql学习经验与总结不断更新中
- 12.远程仓库
- 计数排序
- 反思
- 如何在WinForm项目中调用DX诸多问题解决方案汇总!
- 重置数组键值
- 13.添加远程库
- Java 资源本地化与国际化
- php 求余值
- 类unix系统上localhost的映射
- 【分析】生成dalvik解释器原文件的脚本:gen-mterp.py