您的位置:首页 > 编程语言 > Java开发

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

2008-10-13 20:14 621 查看
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);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐