`
jasonw68
  • 浏览: 153169 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

数组排序算法

    博客分类:
  • J2SE
阅读更多
package com.hgc.test;

/*
 数据排序测试
*/
public class Arraysort
{
	public static void main(String[] args){
		int[] A={8,5,4,3,2,1,6,9,7};
		System.out.println("*******冒泡排序******");
		maopao(A);
		System.out.println();
		System.out.println("*******选择排序******");
		xuanze(A);
		System.out.println();
		System.out.println("*******插入排序******");
		charu(A);
	}
	
	//冒泡排序
	public static void maopao(int[] x){
		for(int i=0;i<x.length;i++){
			for(int j=i+1;j<x.length;j++){
				if(x[i]>x[j]){
					int temp = x[i];
					x[i] = x[j];
					x[j] = temp;
				}
			}	
		}
		for(int i=0;i<x.length;i++){
			System.out.print(x[i]+" ");
		}
	}
	
	//选择排序
	public static void xuanze(int[] x){
		for(int i=0;i<x.length;i++){
			int lowerIndex =i;
			for(int j=i+1;j<x.length;j++){
				//找出最小的索引
				if(x[j]<x[lowerIndex]){
					lowerIndex = j;
				}
			}
			//交换
			int temp = x[i];
			x[i] = x[lowerIndex];
			x[lowerIndex] = temp;
		}
		for(int i=0;i<x.length;i++){
			System.out.print(x[i]+" ");
		}
	}
	
	//插入排序
	public static void charu(int[] x){
		for(int i=1;i<x.length;i++){ //i从一开始,因为第一个数已经是排好序的
			for(int j=i;j>0;j--){
				if(x[j]<x[j-1]){
					int temp=x[j];
					x[j]=x[j-1];
					x[j-1]=temp;
				}
			}
		}
		for(int i:x){
			System.out.print(i+" ");
		}
	}

	//希尔排序
	public static void xier(int[] x){
		//分组
		for(int increment = x.length/2;increment>0;increment/=2){
			//每个组内排序
			for(int i= increment;i<x.length;i++){
				int temp=x[i];
				int j =0;
				for(j=i;j>=increment;j-=increment){
					if(temp<x[j-increment]){
						x[j]=x[j-increment];
					}else{
						break;
					}
				}
				x[j]=temp;
			}
		}
		for(int i:x){
			System.out.print(i+" ");
		}
	}
}

 

分享到:
评论

相关推荐

    易语言数组排序算法集合

    本资源“易语言数组排序算法集合”提供了多种常见的排序算法的源代码实现,对于学习易语言以及算法理解都有极大的帮助。下面将详细介绍其中提及的几种排序算法。 1. **冒泡排序**: 冒泡排序是最基础的排序算法之...

    易语言源码易语言数组排序算法集合源码.rar

    易语言源码易语言数组排序算法集合源码.rar 易语言源码易语言数组排序算法集合源码.rar 易语言源码易语言数组排序算法集合源码.rar 易语言源码易语言数组排序算法集合源码.rar 易语言源码易语言数组排序算法集合...

    多种数组排序算法类 CMySort_Array.h

    多种数组排序算法类 CMySort_Array.h

    数组排序算法改进版.zip_Quick_bubble_数组排序_数组模板 排序

    这个程序的头文件中包含四种排序方法:泡沫排序法(bubble),插入排序...头文件中还使用了模板技术,以便可以同时实现几种类型的排序算法。 dinimicky_hu对原程序做了修改和优化,使用了函数指针数组,并修改了一个BUG

    C#实现的二维数组排序算法示例

    C#实现的二维数组排序算法示例 本文主要介绍了C#语言实现的二维数组排序算法,涉及C#针对二维数组的遍历、判断、排序等相关操作技巧。本算法实现了对二维数组的排序,能够根据指定的列索引和排序类型对二维数组进行...

    c语言的基本算法 数组排序

    本篇内容将深入探讨C语言中的数组排序算法。 首先,数组排序是算法设计中常见的问题,它涉及到数组元素的重新排列,以达到特定的顺序,例如升序或降序。这里提到了两种基本的排序算法:筛选法(用于求素数)和选择...

    Java排序算法练习:1.快速排序 2.归并排序 3.插入排序 4.冒泡排序 5.选择排序 6.堆排序

    堆排序首先将数组构造成一个大顶堆或小顶堆,然后将堆顶元素与末尾元素交换,调整剩余元素为新堆,重复此过程,直至整个数组排序完成。堆排序的时间复杂度为O(n log n),且是原地排序算法,不需要额外的存储空间。 ...

    最快的排序算法 千万级亿级数组排序最快的实现方法,排序算法数据结构

    冒泡排序算法是一种简单的排序算法,它通过比较相邻元素的值来将数组排序。其时间复杂度为O(n^2),因此它在小规模数据中的应用是非常广泛的。但是,当数据规模很大时,冒泡排序算法的效率就会下降。 接下来,我们...

    PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解

    二维数组排序算法的通用性在于它允许调用者指定排序的键值和排序规则,可以处理不同类型的二维数组结构,且无需修改函数内部逻辑。这样的函数设计提高了代码的可复用性和灵活性,适用于多种不同场景。 总之,本篇...

    php选择排序法实现数组排序实例分析_.docx

    PHP 选择排序法是常用的数组排序算法之一,它通过比较数组中的元素,选择合适的元素进行交换,直到整个数组排序完成。在 PHP 中实现选择排序法可以使用以下步骤: 1. 首先,假设数组的第一个元素是最大值,然后与...

    易语言自定义数据类型数组排序

    本话题聚焦于“易语言自定义数据类型数组排序”,将深入探讨如何在易语言中创建、操作自定义数据类型数组,并实现各种排序算法,如根据产地、类别和售价等属性进行排序。 自定义数据类型在易语言中允许我们定义包含...

    数组以及排序算法

    在编程领域,数组和排序算法是基础且至关重要的概念,特别是在Java编程中。数组是一种数据结构,它允许我们在内存中存储相同类型的数据项,并通过索引来访问这些元素。理解数组和掌握高效的排序算法对于编写高性能的...

    使用SCL编写的数组排序程序.rar

    【标题】"使用SCILAB编写的数组排序程序"揭示了这个压缩包文件的主要内容,即一系列使用SCILAB编程语言实现的数组排序算法。SCILAB是一种开源的科学计算软件,它提供了一个类似MATLAB的环境,用于数值分析、矩阵运算...

    用VS2010 C# 数组排序 方法

    ### 知识点二:数组排序算法 数组排序是算法中最常见的操作之一,用于将数组中的元素按照特定顺序(升序或降序)排列。在给出的示例中,采用了简单的冒泡排序算法实现数组的排序: ```csharp static int[] Sort...

    易语言源码文本数组排序.rar

    三、文本数组排序算法 1. 冒泡排序:是最简单的排序算法之一,通过重复遍历数组,比较相邻元素并交换位置,直到没有任何一对数字需要交换。虽然效率较低,但易于理解。 2. 快速排序:由C.A.R. Hoare提出的高效排序...

    易语言数组排序算法集合源码-易语言

    这个"易语言数组排序算法集合源码"是针对易语言编程者的一个进阶教程资源,包含了各种数组排序算法的实现,对于学习和理解算法有着重要的作用。 数组排序是计算机科学中的基本问题,无论是在数据处理、数据分析还是...

    PHP实现的多维数组排序算法分析

    本文实例讲述了PHP实现的多维数组排序算法。分享给大家供大家参考,具体如下: 突然想起了一道面试题,把一个多维数组排序。 例: &lt;?php //有一个多维数组 $a = array( array('key1'=&gt;940, 'key2'=&gt;'blah'), ...

    一个VC++数组排序算法源代码示例

    内容索引:VC/C++源码,算法相关,算法 一个基于VC的数组排序算法源码实例,程序中使用了函数指针数组,一共包含四种排序方法:泡沫排序法(bubble)、插入排序法(insertion)、快速排序法(quick)和选择排序法...

Global site tag (gtag.js) - Google Analytics