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);
}
}
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);
}
}
相关文章推荐
- 【转】排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 排序算法复习(Java实现)(二): 插入,冒泡,选择,Shell,快速排序
- java简单实现冒泡 快速 选择排序
- 冒泡、插入、快速、选择排序的java实现
- java实现七大排序(插入,冒泡,选择,快速,堆,希尔,归并)
- Java 常用排序算法实现--快速排序、插入排序、选择、冒泡
- Java 常用排序算法实现--快速排序、插入排序、选择、冒泡
- 排序算法复习(Java实现): 插入,冒泡,选择,Shell,快速排序
- 冒泡,快速,选择排序的Java实现
- java实现排序(冒泡、选择、快速、插入)
- java实现冒泡,选择,插入,快速排序
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,快速排序
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 冒泡,选择,插入,快速排序在Java中的实现
- java实现常见排序(选择,冒泡,插入,快速,希尔,堆)
- 常见的排序算法(Java实现):冒泡、插入、选择、快速排序
- 排序算法复习(Java实现):插入,冒泡,选择,Shell,快速排序, 归并排序,堆排序,桶式排序,基数排序
- Java分别实现冒泡排序、插入排序、快速排序、选择排序、交换排序