基数排序的核心思想是:把待排序的数组N中的数据分解成为个位,十位,百位.....然后再从个位开始排序,得到第一个数组N1,然后再把N1数组的十位进行排序得到N3,再对N3数组的百位进行排序得到N4,依次这样排序,直到数组中的所有数据的位数都用来排过序了,就可以得到我们所需要的排序数组了。
以下就是过程代码:
/*
* 基数排序的java实现
* @version 1.0 2012/4/1
* @author akon
*/
package com.akon405.www;
public class RadixSort {
public RadixSort(int[] A,int a){
int[][] temp=new int[10][A.length];
int[] B=new int[10];
int i,j,k,m;
int n=1;
for(i=1;i<=a;i++){
int p=0;
//想temp中存数据,数据来自A
for(j=0;j<A.length;j++){
k=A[j]/n%10;//A[j]基数位的数值:0--9
temp[k][B[k]]=A[j];//存放在二维数组 中
B[k]++;//起始值为初始化的0,由B[k]的数值可以得到在temp中的第k行存在多少个数值
}
//从temp中取数据到A
for(j=0;j<10;j++){
if(B[j]!=0){//如果二位数组temp所在的列存放的有数据,才对这列进行取数据操作
for(m=0;m<B[j];m++){
A[p]=temp[j][m];//按每次排序之后的顺序存放在A数组中
p++;
}
}
B[j]=0;//供下一次使用,
}
n=n*10;
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] A={21,19,1,8,76};
int a=2;//数据的最大位数,这里最大为两位数,所以a为2
System.out.print("排序结果:");
new RadixSort(A,a);
for(int i=0;i<A.length;i++){
System.out.print(A[i]+",");
}
}
}
分享到:
相关推荐
- 内部排序算法:插入排序、快速排序、选择排序、归并排序、基数排序。 - 理解排序算法的稳定性与复杂度分析。 #### 二、微机原理与接口 **1. 数制与运算** - 掌握二进制、十进制、十六进制之间的转换。 - ...
7. 计数排序、桶排序和基数排序:这些是线性时间复杂度的非比较排序算法,适用于特定类型的数据,例如整数或范围有限的值。 22.sln 是Visual Studio解决方案文件,包含了项目配置和依赖关系。StdAfx.cpp 和 StdAfx....
基数排序是根据数字的每一位进行排序,不依赖元素间的相对顺序;堆排序利用堆的性质,只关心最大或最小元素的位置,与初始顺序无关。 二、散列表: 2. 散列表是一种通过散列函数将数据映射到固定地址空间的数据结构...
### 2012计算机考研真题解析 #### 1. 时间复杂度分析 - **题目**: 求整数\(n(n \geq 0)\)阶乘的算法如下,其时间复杂度是? ```c int fact(int n) { if (n <= 1) return 1; return n * fact(n - 1); } ``` -...
- 归并排序、基数排序等非比较排序方法。 - **算法分析**:掌握各种排序算法的时间复杂度和空间复杂度。 #### 计算机组成原理部分 **考查目标** - **计算机系统理解**:理解单处理器计算机系统中各部件的内部...
- **基数排序**:趟数与原始状态无关,按照基数排序的原则,趟数是由位数决定的。 - 因此,选项B(仅Ⅰ、Ⅱ、Ⅳ)正确。 **11. 外部排序的相关概念** - **外部排序的特点**: - **内存与外设交换信息的时间**:...
- **示例题**:“在直接插入排序、希尔排序、直接选择排序、堆排序、快速排序和基数排序中,需要内存量最大的是。” - **解析**:本题考察各种排序算法的空间复杂度。在给出的几种排序算法中,基数排序的空间...
1. **计数排序**:一种简单的排序方法,适用于数值范围较小的情况。 2. **哈希表**:通过使用哈希表记录每个数出现的次数,可以有效地找出不成对的数。 3. **位操作**:另一种解决方案是使用异或操作,对于重复出现...
8.6 基数排序 248 8.7 外部排序 252 8.7.1 概念与流程 252 8.7.2 置换-选择排序 253 8.7.3 佳归并树 254 8.7.4 败者树 255 8.7.5 时间与空间复杂度相关问题 257 8.8 排序知识点小结 258 ▲真题仿造 259 真题仿造答案...
7. 排序算法:包括冒泡排序、快速排序、选择排序、堆排序、基数排序等,每种排序算法都有其特点和应用场景,对于理解算法的时间复杂度和空间复杂度非常有帮助。 8. 有向图中医院选址问题:这是一个典型的图论问题,...
12. 排序:排序算法是计算机科学中的关键部分,大纲覆盖了插入排序、选择排序、希尔排序、归并排序、快速排序、堆排序、基数排序,并要求比较不同排序算法的效率。 操作系统部分: 1. 概念与功能:这部分介绍操作...
7. 排序算法,包括插入排序、选择排序、希尔排序、快速排序、堆排序、归并排序和基数排序。 《计算机操作系统》部分,重点考察的是操作系统的基本概念、原理和设计技术。考生需理解操作系统的类型、特征,以及并发...
9. 内部排序:理解并能实施各种排序算法,如插入排序、快速排序、选择排序、归并排序、基数排序,并能比较不同排序方法的性能特点。 备考时,考生应重点掌握上述各部分的核心概念、操作方法和常见算法,同时,通过...
6. **内部排序**:内部排序涉及多种算法,如插入排序、冒泡排序、选择排序、希尔排序、快速排序、堆排序、二路归并排序和基数排序。考生需掌握每种排序算法的实现和性能比较,理解排序在实际问题中的应用。 计算机...
* 实现希尔排序和基数排序。 知识点: * 快速排序 * 堆排序 * 归并排序 * 希尔排序 * 基数排序 题目 4: 任意长的整数加减器 问题描述:设计一个程序实现两个任意长的整数的求和运算。 基本要求: * 利用双向...
- 从2008年至2012年,中国旅游业总收入从1.16万亿元增至2.59万亿元,复合增长率高达22.23%。 - 预计未来几年内,旅游业收入年均增速有望保持在10%以上。 - 随着中国人均GDP超过6000美元,旅游业进入高速发展期,...
2. **各种排序算法**:包括选择排序、插入排序、冒泡排序、希尔排序、快速排序、堆排序、合并排序和基数排序,每种算法都有其特点和适用场景。 3. **排序算法的比较**:对比各种排序算法的时间复杂度、空间复杂度和...
4. 排序算法:了解各种排序算法(冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序、计数排序、桶排序、基数排序等),比较其优劣,知道在何种情况下选择哪种排序方法。 5. 链表操作:熟练掌握单链表、...
本文将详细解读2012年发表的一篇关于高校岗位绩效考核信息管理系统设计与实现的论文,从而探讨该系统的设计理念、架构、功能模块以及实现的关键技术。 一、系统设计背景与需求分析 随着我国事业单位人事制度改革的...