`
zcb11051
  • 浏览: 8691 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

java 排序算法

阅读更多
import java.util.Date;

public class Sort 
{
	public static void main(String[] args)
	{

		
		int[] arr = { 10, 32, 1, 9, 5, 7, 12, 0, 4, 3 }; // array   

		long time1=new Date().getTime(); 
		//insertSort(arr);
		//selectSort(arr);
		quickSort(arr,0,arr.length-1);
		System.out.println(new Date().getTime()-time1);
		for(int i=0;i<10;i++)
		{
			System.out.print(arr[i]+" ");
		}
	}
	
	
	//插入排序
	public static void insertSort(int[] arr)
	{
		
		for(int j=1;j<arr.length;j++)
		{
			int key=arr[j];
			int i=j-1;
			while(i>=0&&arr[i]>key)
			{
				arr[i+1]=arr[i];
				i--;
			}
			arr[i+1]=key;
		}
	}
	
	//选择排序
	public static void selectSort(int[] arr)
	{
		for(int i=0;i<arr.length-1;i++)
		{
			int minIndex=i;
			for(int j=i+1;j<arr.length;j++)
			{
				if(arr[minIndex]>arr[j])
				{
					minIndex=j;
				}
			}
			if(minIndex!=i)
			{
				int temp=arr[i];
				arr[i]=arr[minIndex];
				arr[minIndex]=temp;
			}
		}
	}
	
	//快速排序
	public static int[] quickSort(int[] arr,int left,int right)
	{
		int i=left,j=right;
		int middle,temp;
		middle=arr[(left+right)/2];
		do
		{
			while(arr[i]<middle&&i<right)
			{
				i++;
			}
			while(arr[j]>middle&&j>left)
			{
				j--;
			}
			if(i<=j)
			{
				temp=arr[i];
				arr[i]=arr[j];
				arr[j]=temp;
				i++;
				j--;
			}
		}while(i<=j);
		
		if(left<j)
		{
			quickSort(arr,left,j);
		}
		if(right>i)
		{
			quickSort(arr,i,right);
		}
		
		return arr;
		
	}
	
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics