java編程實現(xiàn)隨機數(shù)組的快速排序步驟如下:
創(chuàng)新互聯(lián)公司是一家專業(yè)提供盤州企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計制作、成都網(wǎng)站制作、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為盤州眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。
1、打開Eclipse,新建一個Java工程,在此工程里新建一個Java類;
2、在新建的類中聲明一個產(chǎn)生隨機數(shù)的Random變量,再聲明一個10個長度的int型數(shù)組;
3、將產(chǎn)生的隨機數(shù)逐個放入到數(shù)組中;
4、利用排序算法對隨機數(shù)組進行排序。
具體代碼如下:
import?java.util.Random;
public?class?Demo?{
public?static?void?main(String[]?args)?{
int?count?=?0;
Random?random?=?new?Random();
int?a[]?=?new?int[10];
while(count??10){
a[count]?=?random.nextInt(1000);//產(chǎn)生0-999的隨機數(shù)
count++;
}
for?(int?i?=?0;?i??a.length?-?1;?i++)?{
int?min?=?i;
for?(int?j?=?i?+?1;?j??a.length;?j++)?{
if?(a[j]??a[min])?{
min?=?j;
}
}
if?(min?!=?i)?{
int?b?=?a[min];
a[min]?=?a[i];
a[i]?=?b;
}
}
for?(int?c?=?0;?c??a.length;?c++)?{
System.out.print(a[c]?+?"?");
}
}
}
本人特地給你編的代碼\x0d\x0a親測\x0d\x0a\x0d\x0apublicclassQuickSort{\x0d\x0a\x0d\x0apublicstaticintPartition(inta[],intp,intr){\x0d\x0aintx=a[r-1];\x0d\x0ainti=p-1;\x0d\x0ainttemp;\x0d\x0afor(intj=p;jif(a[j-1]//swap(a[j-1],a[i-1]);\x0d\x0ai++;\x0d\x0atemp=a[j-1];\x0d\x0aa[j-1]=a[i-1];\x0d\x0aa[i-1]=temp;\x0d\x0a\x0d\x0a}\x0d\x0a}\x0d\x0a//swap(a[r-1,a[i+1-1]);\x0d\x0atemp=a[r-1];\x0d\x0aa[r-1]=a[i+1-1];\x0d\x0aa[i+1-1]=temp;\x0d\x0a\x0d\x0areturni+1;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublicstaticvoidQuickSort(inta[],intp,intr){\x0d\x0a\x0d\x0aif(p
參考代碼如下,可以按需求自己修改
import?java.util.Date;
public?class?SortThread?{
public?static?void?main(String[]?args)?{
//產(chǎn)生一個隨機數(shù)組
int[]?ary?=?getArray();
//啟動冒泡排序線程
new?Thread(new?MaoPao(ary)).start();
//啟動快速排序線程
new?Thread(new?KuaiSu(ary)).start();
}
private?static?int[]?getArray()?{
//建議數(shù)字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()?+?"冒泡排序線程:開始執(zhí)行排序");
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()?+?"快速排序線程:開始執(zhí)行排序");
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);
}
}
}
① 代碼:
public?class?quicksortdemo?{
private?int?array[];
private?int?length;
public?void?sort(int[]?inputArr)?{
if?(inputArr?==?null?||?inputArr.length?==?0)?{
return;
}
this.array?=?inputArr;
length?=?inputArr.length;
quickSort(0,?length?-?1);
}
private?void?quickSort(int?lowerIndex,?int?higherIndex)?{
int?i?=?lowerIndex;
int?j?=?higherIndex;
//?calculate?pivot?number
int?pivot?=?array[lowerIndex+(higherIndex-lowerIndex)/2];
//?Divide?into?two?arrays
while?(i?=?j)?{
while?(array[i]??pivot)?{
i++;
}
while?(array[j]??pivot)?{
j--;
}
if?(i?=?j)?{
swap(i,?j);????????????????
i++;
j--;
}
}
//?call?quickSort()?method?recursively
if?(lowerIndex??j)
quickSort(lowerIndex,?j);
if?(i??higherIndex)
quickSort(i,?higherIndex);
}
private?void?swap(int?i,?int?j)?{
int?temp?=?array[i];
array[i]?=?array[j];
array[j]?=?temp;
}
public?static?void?main(String?a[]){
quicksortdemo?sorter?=?new?quicksortdemo();
int[]?input?=?{24,2,45,20,56,75,2,56,99,53,12};
sorter.sort(input);
for(int?i:input){
System.out.print(i);
System.out.print("?");
}
}
}
② 運行:
c:\java?quicksortdemo
2?2?12?20?24?45?53?56?56?75?99
網(wǎng)站名稱:快速排序java源代碼 快速排序java源代碼怎么做
文章轉(zhuǎn)載:http://m.rwnh.cn/article48/hhgpep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、電子商務(wù)、品牌網(wǎng)站設(shè)計、網(wǎng)站策劃、面包屑導(dǎo)航、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)