zoukankan      html  css  js  c++  java
  • Algorithm Gossip (41) 基数排序法

    前言

    This Series aritcles are all based on the book 《经典算法大全》; 对于该书的所有案例进行一个探究和拓展,并且用python和C++进行实现; 目的是熟悉常用算法过程中的技巧和逻辑拓展。

    提出问题

    41.Algorithm Gossip: 基数排序法

    分析和解释

    代码

    #include <stdio.h>
    #include <stdlib.h>
    int main(void) {
    	int data[10] = {73, 22, 93, 43, 55, 14, 28, 65, 39, 81};
    	int temp[10][10] = {0};
    	int order[10] = {0};
    	int i, j, k, n, lsd;
    	k = 0;
    	n = 1;
    	printf("
    排序前: ");
    	for(i = 0; i < 10; i++)
    		printf("%d ", data[i]);
    	putchar('
    ');
    	while(n <= 10) {
    		for(i = 0; i < 10; i++) {
    			lsd = ((data[i] / n) % 10);
    			temp[lsd][order[lsd]] = data[i];
    			order[lsd]++;
    			}
    		printf("
    重新排列: ");
    		for(i = 0; i < 10; i++) {
    			if(order[i] != 0)
    				for(j = 0; j < order[i]; j++) {
    				data[k] = temp[i][j];
    				printf("%d ", data[k]);
    				k++;
    				}
    			order[i] = 0;
    			}
    		n *= 10;
    		k = 0;
    		}
    	putchar('
    ');
    	printf("
    排序后: ");
    	for(i = 0; i < 10; i++)
    		printf("%d ", data[i]);
    	return 0;
    	}
    

    拓展和关联

    ** 排序算法是基础算法的核心, 思想也比较多, 容易被融合; 可以[维基百科] 进行深入了解.**

    后记

    参考书籍

    • 《经典算法大全》
    • 维基百科
  • 相关阅读:
    jqGrid基本使用
    模块熟悉
    正则表达式-精髓
    登录+购物车+信息保存
    输入打开文件
    python打印目录下的文件名
    进度条
    模块导入
    正则表达式
    函数笔记
  • 原文地址:https://www.cnblogs.com/actanble/p/6711170.html
Copyright © 2011-2022 走看看