三种方法对java数组排序

原创 2012年03月26日 22:02:04

1.选择排序法

每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列最后,直到全部待排序的数据元素排完。

				for (int i = 0; i < array.length; i++) {
					int min = array[i];
					for (int j = i; j < array.length; j++) {
						if (array[j] < min) {
							min = array[j];
							array[j] = array[i];
							array[i] = min;
						}
					}
				}

2.冒泡排序法

比较相邻的元素值,如果满足条件就交换元素值

				for(int i=1;i<=array.length-1;i++){//排序轮数为数组长度-1
					for(int j=0;j<array.length-i;j++){//比较次数为数组长度-排序轮数
						if(array[j]>array[j+1]){
							int temp=array[j];
							array[j]=array[j+1];
							array[j+1]=temp;
						}
					}
				}

3.快速排序法

通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另一部分所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程递归进行,以此使整个数据变成有序序列。

package src;

public class QSort 
{

	/**
	 * @param args
	 */
	public static void main(String[] args) 
	{
		// TODO 自动生成方法存根
		quicksort qs = new quicksort();
		int data[] = {44,22,2,32,54,22,88,77,99,11};
		qs.data = data;
		qs.sort(0, qs.data.length-1);
		qs.display();
	}

}


class quicksort
{
	public int data[];
	
	private int partition(int sortArray[],int low,int hight)
	{
		int key = sortArray[low];
		
		while(low<hight)
		{
			while(low<hight && sortArray[hight]>=key)
				hight--;
			sortArray[low] = sortArray[hight];
			
			while(low<hight && sortArray[low]<=key)
				low++;
			sortArray[hight] = sortArray[low];
		}
		sortArray[low] = key;
		return low;
	}
	
	public void sort(int low,int hight)
	{
		if(low<hight)
		{
			int result = partition(data,low,hight);
			sort(low,result-1);
			sort(result+1,hight);
		}
		
	}
	
	public void display()
	{
		for(int i=0;i<data.length;i++)
		{
			System.out.print(data[i]);
			System.out.print(" ");
		}
	}
}

来源:http://www.oschina.net/code/snippet_186712_6364 很扎实啊



 

java数组中的三种排序方法中的冒泡排序方法

我记得我大学学java的时候,怎么就是搞不明白这
  • xuejavaweb
  • xuejavaweb
  • 2014年09月15日 15:39
  • 597

Java代码实现二维数组的排序

Java代码实现二维数组的排序,先对数组的全局数据进行从小到大的排序,然后对奇数行的数据进行反转,及按照从大到小的顺序再排序。 代码如下:public class MatrixSort { publ...
  • zhengufeng123
  • zhengufeng123
  • 2016年10月21日 09:27
  • 375

对数组进行排序的两种方法

描述: 对重量进行排序后,输出帽子颜色,如有5只小白鼠,重量分别为15, 30, 5, 9 30, 帽子颜色依次为CL_RED, CL_BLUE, CL_BLUE, CL_YELLOW, CL_GRA...
  • lanximu
  • lanximu
  • 2014年03月02日 15:59
  • 2942

Java 数组排序三种方法

排序算法       Java程序中,排序算法有很多种,此次给大家介绍的是类排序方法、冒泡排序方法和直接排序方法。此为个人收集整理,仅供大家参考!   1.类排序方法     Arrays是...
  • jiciqiang
  • jiciqiang
  • 2012年06月16日 13:59
  • 426

JAVA 中数组的几种排序方法

1、数组的冒泡排序public void bubbleSort(int a[]) { int n = a.length; for (int i = 0; i < n - 1; i++)...
  • fengyifei11228
  • fengyifei11228
  • 2008年07月08日 11:21
  • 50606

对字符串数组进行排序,在冒泡法排序中使用compareTo()方法确定排序的顺序。

//A bubble sort for Strings.public class SortString { static String  arr[] = {"NOP","DEF","GHI","JK"...
  • Imain
  • Imain
  • 2006年06月09日 11:13
  • 2248

数组的四种排序方法

JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。 快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。 冒泡法是运用遍历数...
  • wxb774567876
  • wxb774567876
  • 2012年11月02日 18:25
  • 14916

java 对二维数组排序的几种方法

public void dAM1() { int[] a[] = { { 12, 26, 89, 78, 45, 65, 36 }, { 2, 6, 90, 34, 16, 27...
  • sinat_34979528
  • sinat_34979528
  • 2016年11月29日 22:36
  • 10873

程序员面试金典: 9.11 排序与查找 11.1编写一个方法,对字符串数组进行排序,将所有变位词排在相邻的位置。

#include #include #include #include #include #include using namespace std; /* 问题:编写一个方法,对字符...
  • qingyuanluofeng
  • qingyuanluofeng
  • 2017年01月11日 22:07
  • 233

JAVA中数组排序函数

Java中有一个类叫Arrays,其有一个方法是sort(int[] a) ,默认的是对指定的 int 型数组按数字进行升序排序。 例如: 数组 int[] intArray = new int[]...
  • baidu_34372014
  • baidu_34372014
  • 2016年11月28日 21:29
  • 4123
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:三种方法对java数组排序
举报原因:
原因补充:

(最多只允许输入30个字)