當前位置:編程學習大全網 - 源碼下載 - 請用java語言編寫排序程序。

請用java語言編寫排序程序。

參考代碼如下,可以按需求自己修改

import?java.util.Date;

public?class?SortThread?{

public?static?void?main(String[]?args)?{

//產生壹個隨機數組

int[]?ary?=?getArray();

//啟動冒泡排序線程

new?Thread(new?MaoPao(ary)).start();

//啟動快速排序線程

new?Thread(new?KuaiSu(ary)).start();

}

private?static?int[]?getArray()?{

//建議數字n不要超過1百萬,十萬左右就好了

int?n?=?(int)?(Math.random()*1000000)+11;

int[]?ary=?new?int[n];

System.out.println("n的值是"?+?n);

for?(int?i?=?0;?i?<?ary.length;?i++)?{

ary[i]?=?(int)?(Math.random()*100000);

}

return?ary;

}

}

//冒泡排序

class?MaoPao?implements?Runnable?{

int[]?ary;

public?MaoPao(int[]?ary)?{

this.ary?=?ary;

}

@Override

public?void?run()?{

long?st?=?System.currentTimeMillis();

System.out.println(new?Date()?+?"冒泡排序線程:開始執行排序");

for?(int?i?=?0;?i?<?ary.length?-?1;?i++)?{

for?(int?j?=?0;?j?<?ary.length?-?i?-?1;?j++)?{

if?(ary[j]?<?ary[j?+?1])?{

int?temp?=?ary[j];

ary[j]?=?ary[j?+?1];

ary[j?+?1]?=?temp;

}

}

}

long?et?=?System.currentTimeMillis();

System.out.println(new?Date()?+?"冒泡排序線程完成排序,耗費時間"?+?(et?-?st)?+?"毫秒");

for?(int?i?=?0;?i?<?ary.length;?i++)?{

System.out.println(ary[i]+"?");

}

}

}

//快速排序

class?KuaiSu?implements?Runnable?{

int[]?ary;

public?KuaiSu(int[]?ary)?{

this.ary?=?ary;

}

@Override

public?void?run()?{

long?st?=?System.currentTimeMillis();

System.out.println(new?Date()?+?"快速排序線程:開始執行排序");

quickSort(ary,?1,?ary.length);

long?et?=?System.currentTimeMillis();

System.out.println(new?Date()?+?"快速排序線程排序完成,耗費時間"?+?(et?-?st)?+?"毫秒");

for?(int?i?=?0;?i?<?ary.length;?i++)?{

System.out.println(ary[i]+"?");

}

}

public?static?int?Partition(int?a[],?int?p,?int?r)?{

int?x?=?a[r?-?1];

int?i?=?p?-?1;

int?temp;

for?(int?j?=?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;

return?i?+?1;

}

public?static?void?quickSort(int?a[],?int?p,?int?r)?{

if?(p?<?r)?{

int?q?=?Partition(a,?p,?r);

quickSort(a,?p,?q?-?1);

quickSort(a,?q?+?1,?r);

}

}

}

  • 上一篇:java 使用 openoffice 將office文件轉PDF的必備條件?
  • 下一篇:奶茶店墻面裝飾玻璃優缺點都有什麽
  • copyright 2024編程學習大全網