java实现的冒泡、选择、快速排序

import java.lang.*;
import java.io.*;

public class PaiXu {

    /**
     * @param args
     */
    public static void main(String[] args) {
       
        System.out.println("please input an array(5):");
        try{
            BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
            int []a=new int[5];
            for(int i=0;i<5;i++){
                a[i]=Integer.parseInt(br.readLine());
            }
           
            //bubbleSort(a);                          //sort  used by bubble
            //selectSort(a);                          //sort  used by select
             quickSort(a,0,a.length-1);               //sort  used by quick
        System.out.println("排序后的顺序如下:");
            for(int i=0;i<5;i++){
               
                System.out.println(a[i]);
            }
        }catch(IOException ex){}
       

    }   
        static void bubbleSort(int []a){
           
            for(int i=0;i<a.length;i++){
                boolean flag=true;
                for(int j=1;j<a.length-i;j++)
                if(a[j-1]>a[j]){
                    int temp=a[j-1];
                    a[j-1]=a[j];
                    a[j]=temp;
                    flag=false;
                }
                if(flag)break;
               

            }
       
        }
       
        static void selectSort(int []a){
            for(int i=0;i<a.length;i++){
                int index=0;
                for(int j=0;j<a.length-i;j++){
                    if(a[index]<a[j])index=j;
                   
                }
                if(index!=a.length-i-1){
                   
                    int temp=a[a.length-i-1];
                    a[a.length-i-1]=a[index];
                    a[index]=temp;
                }
            }
           
        }
       
       
       
        static void quickSort(int[] pData,int left,int right){
            int i,j;
            int iTemp;
            int middle;
            i = left;
            j = right;
            middle = pData[(left+right)/2];
            do{
           
            while((pData[i]<middle) && (i<right))
            i++;
            while((pData[j]>middle) && (j>left))
            j--;
            if(i<=j)
            {
            iTemp = pData[i];
            pData[i] = pData[j];
            pData[j] = iTemp;
            i++;
            j--;
            }

            }while(i<=j);//如果两边扫描的下标交错,就停止(完成一次)
                  
                if(left<j)
                quickSort(pData,left,j);
                if(right>i)
                quickSort(pData,i,right);
            }

}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值