三种方法对java数组排序

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 很扎实啊



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值