基于计数排序子程序的基数排序实现
来源:互联网 发布:python for quants 编辑:程序博客网 时间:2024/05/21 11:12
#include "stdafx.h"#include <iostream>#include <math.h>using namespace std;#define RADIX 3#define LENGTH 7int A[LENGTH] = { 329, 457, 657, 839, 436, 720, 355 };// copy a[] into b[]void CopyArray(int* a, int* b){for (int i = 0; i < LENGTH; ++i) {b[i] = a[i];}}void PrintArray(int* a){for (int i = 0; i < LENGTH; ++i) {cout << a[i] << " ";}cout << endl;}//返回整型a的第i位数//GetDigitI(790,3) = 7//GetDigitI(790,2) = 9//GetDigitI(790, 1) = 0int GetDigitI(int a, int i){return (a / (int)pow(10, i-1)) % 10;}//计数排序void CountingSort(int* a, int i){int B[LENGTH] = { 0 }; //存本次的排序结果int C[10] = { 0 }; //用于统计的辅助数组//统计第i位上的值出现次数for (int k = 0; k < LENGTH; ++k) {int t = GetDigitI(a[k], i);C[t] += 1;}//累加for (int k = 1; k < 10; ++k) {C[k] = C[k] + C[k - 1];}//根据累加数组C,对a进行排序,结果在B中for (int k = LENGTH-1; k >= 0; --k) {int t = GetDigitI(a[k], i);B[C[t] - 1] = a[k];C[t] -= 1;}CopyArray(B,a);}//基数排序void RadixSort(){int* t = A;for (int i = 1; i <= RADIX; ++i) {//Use Counting sort to sort array A on digit iCountingSort(t, i);cout << "Result " << i <<": \n";PrintArray(A);}}int _tmain(int argc, _TCHAR* argv[]){PrintArray(A);RadixSort();return 0;}
0 0
- 基于计数排序子程序的基数排序实现
- 基于计数排序的基数排序
- (p111)基数排序(子程序是计数排序)
- 基于计数排序的基数排序算法
- 希尔排序 计数排序,基数排序的实现
- 计数排序实现基数排序
- 基数排序(基于计数排序)
- 位排序 -- 基于计数排序和基数排序产生的特例
- 算法实践篇-基于计数排序的基数排序
- 排序算法(三)_计数排序、基数排序的Java实现
- python实现计数排序、桶排序、基数排序
- 三种线性的非基于比较的排序算法:计数排序、桶排序与基数排序
- 三种线性的非基于比较的排序算法:计数排序、桶排序与基数排序
- 三种线性的非基于比较的排序算法:计数排序、桶排序与基数排序
- 三种基于“分配”“收集”的线性排序算法---计数排序、桶排序与基数排序
- 基于非比较的排序:计数排序(countSort),桶排序(bucketSort),基数排序(radixSort)
- 计数排序,基数排序
- 计数排序和基数排序
- Java_命名规范
- zookeeper权威的应用案例
- CSS Reset方法及它的滥用
- Ubuntu connect rjsupplicant
- slave宕机master重启出现问题解决办法
- 基于计数排序子程序的基数排序实现
- IE浏览器的版本怎么就降下来
- dom4j_Tomcat入门
- OC 术语表
- 学习笔记:c语言中词法陷阱
- java设计模式学习之观察者模式(二)
- Unity5.1 新的网络引擎UNET(十五) Networking 引用--下
- Apache Thrift设计概要
- 黑马程序员--基础整理02