`
EmmaZhao
  • 浏览: 33466 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

排序算法(三)

 
阅读更多
package sort;

public class RadixSort {
	public static void main(String[] args) {
		int A[] = {329,457,657,839,436,720,355};
		radixSort(A, 3);
		for (int j : A) {
			System.out.print(j + " ");
		}
		System.out.println();
	}
	
	public static void radixSort(int A[],int d){
		for(int i = 1;i<=d;i++){
			quickSort(A, i, 0, A.length -1);
		}
	}
	private static void quickSort(int A[],int d,int p,int r){
		if(p < r){
			int j = partition(A, d, p, r);
			
			quickSort(A, d, p, j-1);
			quickSort(A, d, j+1, r);
			
		}
		
	}
	private static int partition(int A[],int d, int p,int r){

		int[][] B = divide(A, d);
		
		int x = B[r][d-1];
		
		int i = p-1;
		
		for(int j = p; j < r;j++){
			if(B[j][d-1] <= x){
				i++;
				
				int temp = A[j];
				A[j] = A[i];
				A[i] = temp;
			}
		}

		int temp = A[r];
		A[r] = A[i+1];
		A[i+1] = temp;
		
		return i+1;
	}
	
	private static int[][] divide(int A[],int d){

		int C[] = new int[A.length];
		for (int k = 0; k < A.length;k++) {
			C[k] = A[k];
		}
		int B[][] = new int[A.length][d];
		for (int i = 0;i<A.length;i++){
			for(int j = 0;j<d;j++){
				B[i][j] = C[i]%10;
				C[i] /= 10;
			}
		}
	
		return B;
	}
}

分享到:
评论

相关推荐

    最快的排序算法 计算机最快的算法-史上14个最快速算法:孩子的计算能力爆表!大脑堪比计算机!...,排序算法数据结构

    在计算机科学领域中,排序算法是一种基本的算法,它可以将数据按照一定的顺序排列,以便更好地存储、检索和处理数据。排序算法的速度和效率对程序的性能有着至关重要的影响。 1.冒泡排序算法 冒泡排序算法是一种...

    python常用排序算法汇总

    该程序包含7大排序算法: # sort.bubbleSort() #冒泡排序 # sort.shellSort() #希尔排序 # sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() ...

    js排序算法动态展示

    js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js...

    常用排序算法总结 常用排序算法总结 常用排序算法总结

    常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结

    常用的排序算法总结(各种内部排序算法和外部排序算法)

    排序算法是计算机科学中最基础和重要的算法之一,用于将一组数据按照特定的顺序进行排列。本文将对几种常见的内部排序算法和外部排序算法进行详细总结。 首先,排序的基本定义是:给定一个包含n个记录的序列,其...

    各种排序算法比较(java实现)

    在IT领域,排序算法是计算机科学中的基础但至关重要的部分,尤其在数据处理和数据分析中起着关键作用。本文将详细探讨标题所提及的几种排序算法:合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并...

    各种排序算法比较

    ### 各种排序算法比较 #### 一、稳定性比较 稳定性是排序算法中一个重要的特性,指的是相等的元素在排序前后保持原有的相对位置不变。根据文档提供的信息,我们可以总结出以下结论: - **稳定排序**:插入排序、...

    排序算法(C语言实现)

    本资源提供了三种经典的排序算法的C语言实现:堆排序、直接插入排序和快速排序。 首先,让我们详细了解这些排序算法。 1. **直接插入排序**: 直接插入排序是一种简单的排序算法,它的工作原理类似于我们手动排序...

    排序算法 各种算法的综合

    【排序算法】是计算机科学中的基础且至关重要的概念,它涉及到如何有效地重新排列一组数据,使其按照特定的顺序排列。由于在实际应用中,我们经常需要处理大量的数据,因此【排序算法】的效率至关重要。衡量算法效率...

    各种排序算法性能的比较

    各种排序算法性能的比较 在计算机科学中,排序算法是将一组数据按照一定的顺序排列的过程。排序算法的性能直接影响到数据处理和分析的效率。本课程设计中,我们将对八种内部排序算法的性能进行分析和比较。 1. ...

    常用排序算法java演示

    7. **计数排序(Counting Sort)、桶排序(Bucket Sort)和基数排序(Radix Sort)**:这三种排序算法属于非比较型排序,不依赖于元素间的比较,而是基于特定的特性,如元素的范围、分布等。Java中实现这类排序通常...

    算法设计与分析-1排序算法性能分析-冒泡/选择/插入/合并/快速排序-pre ppt

    【排序算法性能分析】 在计算机科学中,排序算法是用于重新排列一组数据的算法,使得数据按照特定的顺序排列。本篇文章将详细讨论几种常见的排序算法:选择排序、冒泡排序、插入排序、合并排序以及快速排序,分析...

    Android-Android图形化展示排序算法

    在Android开发中,将排序算法以图形化的方式展示出来,不仅可以帮助开发者更好地理解和记忆各种排序算法的工作原理,还可以为教学和学习提供直观的工具。"Android-Android图形化展示排序算法"项目,就是这样一个旨在...

    排序算法实验报告

    希尔排序,冒泡排序、快速排序递归排序,快速排序非递归排序,快速排序改进算法

    用C语言实现常用排序算法

    本项目旨在实现并比较六种经典的排序算法——直接插入排序、折半插入排序、起泡排序、简单选择排序、堆排序以及2-路归并排序,使用C语言编程。为了全面评估这些算法,我们将在一组随机生成的30000个整数上运行它们,...

    一般排序算法测试程序

    b) 对于这三类数据,比较上述排序算法中的关键字的比较次数和移动次数; c) 对于这三类数据,比较上述排序算法的执行时间,精确到微秒; d) 对于2和3的结果进行分析,验证上述各种算法的时间复杂度; e) 编写MAIN...

    查找与排序算法的实现和应用

    查找与排序算法的实现和应用 查找算法是计算机科学中的一种基本算法,用于在数据结构中搜索某个特定的值或记录。常见的查找算法有顺序查找、二分法查找、快速查找等。 在顺序查找算法中,我们需要从头到尾遍历整个...

    c语言链表的排序算法-排序链表最快的算法是什么?.pdf

    我们比较了三个不同的链表排序算法:合并排序、快速排序和内置的qsort算法。结果表明,合并排序和快速排序在链表中的性能远远超过内置的qsort算法。 在我们的实验中,我们还发现,链表的缓存性能对排序算法的性能...

    算法与数据结构的排序算法

    三、排序算法的时间复杂度 时间复杂度是衡量排序算法效率的重要指标,常见排序算法的时间复杂度如下: - 冒泡排序、插入排序、选择排序:平均和最坏情况下的时间复杂度为O(n^2)。 - 快速排序:平均时间复杂度为O(n ...

    排序算法.pdf

    陕西科技大学学校的排序算法实验,最近小咲写的: 一、实验目的 1. 熟练运用冒泡排序、选择排序、插入排序、希尔排序、快速排序、合并排序、堆排序等七种常见的内排序算法 2. 使用不同的数据结合计算各种算法的运行...

Global site tag (gtag.js) - Google Analytics