用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

选择与排序算法

2016-11-01 作者: 梅西小王子举报

[java]代码库

/**
 * 功能:排序算法的演示
 */
package com.text;

import java.util.Calendar;

public class Text2 {

	public static void main(String[] args) {
		
		int len=100000;
		
		int a[]=new int[len];
		
		for (int i = 0; i < a.length; i++) {
			int t=(int)Math.random()*10000;
			
			a[i]=t;
		}
		
//		Quick quick=new Quick();
		Insert insert=new Insert();
		//在排序前打印系统时间
		Calendar cal=Calendar.getInstance();
		System.out.println("排序前:"+cal.getTime());
		insert.insertSort(a);
//		quick.quickSort(0, a.length-1,a);
		cal=Calendar.getInstance();
		System.out.println("排序后:"+cal.getTime());
		
		/*int a[]={1,5,2,15,6,-2,11,12,100,56,79,21,1000,566};
		Quick quick=new Quick();
		quick.quickSort(0, a.length-1,a);
		for (int i = 0; i < a.length; i++) {
			System.out.print("  "+a[i]);
		}*/

	}

}


//选择排序
class Insert{
	int temp;
	public void insertSort(int a[]){
		for (int i = 0; i < a.length-1; i++) {
			int min=a[i];
			//记录最小值的下标
			int minIndex=i;
			for (int j = i+1; j < a.length; j++) {
				if (min>a[j]) {
					//修改最小值
					min=a[j];
					minIndex=j;
				}
			}
			temp=a[i];
			a[i]=a[minIndex];
			a[minIndex]=temp;
		}
	}
		
}

//快速排序
class Quick{
	public void quickSort(int left,int right,int a[]){
		int l=left;
		int r=right;
		int pivot = a[(left+right)/2];
		int temp = 0;
		
		while(l<r){
			
			while(a[l]<pivot) 
				l++;
			while(a[r]<pivot)
				r--;
			
			if (l>=r)
				break;
			
			temp=a[l];
			a[l]=a[r];
			a[r]=temp;
			
			if(a[l]==pivot)
				--r;
			if(a[r]==pivot)
				++l;
		}
		
		if(l==r){
			l++;
			r--;
		}
		
		if(left<r) quickSort(left, r,a);
		if(r>right) quickSort(l, right,a);
			
			
	}
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...