java語言實現任何一種排序
Ⅰ 利用java語言,實現數組的排序
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入十個數:");
int arr[] = new int[11];
for (int i=0;i<10;i++){
arr[i] = scanner.nextInt();
}
for (int i=0;i<10;i++){
for (int j=i;j<10;j++){
if (arr[i]<arr[j]){
int tmp = arr[i];arr[i] = arr[j];arr[j] = tmp;
}
}
}
System.out.println("降序排列後輸出結果:");
for (int i=0;i<10;i++){
System.out.print(arr[i] + " ");
}
System.out.println();
System.out.println("插入一個數:");
int ex = scanner.nextInt();
for (int i=0;i<10;i++){
if (ex>arr[i]){
for (int j=10;j>i;j--){
arr[j] = arr[j-1];
}
arr[i] = ex;
break;
}
}
System.out.println("插入一個數後的輸出結果:");
for (int i=0;i<11;i++){
System.out.print(arr[i] + " ");
}
}
}
Ⅱ 請用java語言編寫排序程序。
importjava.util.Date;
publicclassSortThread{
publicstaticvoidmain(String[]args){
//產生一個隨機數組
int[]ary=getArray();
//啟動冒泡排序線程
newThread(newMaoPao(ary)).start();
//啟動快速排序線程
newThread(newKuaiSu(ary)).start();
}
privatestaticint[]getArray(){
//建議數字n不要超過1百萬,十萬左右就好了
intn=(int)(Math.random()*1000000)+11;
int[]ary=newint[n];
System.out.println("n的值是"+n);
for(inti=0;i<ary.length;i++){
ary[i]=(int)(Math.random()*100000);
}
returnary;
}
}
//冒泡排序
classMaoPaoimplementsRunnable{
int[]ary;
publicMaoPao(int[]ary){
this.ary=ary;
}
@Override
publicvoidrun(){
longst=System.currentTimeMillis();
System.out.println(newDate()+"冒泡排序線程:開始執行排序");
for(inti=0;i<ary.length-1;i++){
for(intj=0;j<ary.length-i-1;j++){
if(ary[j]<ary[j+1]){
inttemp=ary[j];
ary[j]=ary[j+1];
ary[j+1]=temp;
}
}
}
longet=System.currentTimeMillis();
System.out.println(newDate()+"冒泡排序線程完成排序,耗費時間"+(et-st)+"毫秒");
for(inti=0;i<ary.length;i++){
System.out.println(ary[i]+"");
}
}
}
//快速排序
classKuaiSuimplementsRunnable{
int[]ary;
publicKuaiSu(int[]ary){
this.ary=ary;
}
@Override
publicvoidrun(){
longst=System.currentTimeMillis();
System.out.println(newDate()+"快速排序線程:開始執行排序");
quickSort(ary,1,ary.length);
longet=System.currentTimeMillis();
System.out.println(newDate()+"快速排序線程排序完成,耗費時間"+(et-st)+"毫秒");
for(inti=0;i<ary.length;i++){
System.out.println(ary[i]+"");
}
}
publicstaticintPartition(inta[],intp,intr){
intx=a[r-1];
inti=p-1;
inttemp;
for(intj=p;j<=r-1;j++){
if(a[j-1]<=x){
i++;
temp=a[j-1];
a[j-1]=a[i-1];
a[i-1]=temp;
}
}
temp=a[r-1];
a[r-1]=a[i+1-1];
a[i+1-1]=temp;
returni+1;
}
publicstaticvoidquickSort(inta[],intp,intr){
if(p<r){
intq=Partition(a,p,r);
quickSort(a,p,q-1);
quickSort(a,q+1,r);
}
}
}