用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


还能输入: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、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

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

加载中,请稍后...