中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

java語言排序代碼 java程序排序

java冒泡排序代碼

冒泡排序(Bubble Sort)是一種簡單的排序算法。它重復地走訪過要排序的數(shù)列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數(shù)列的工作是重復地進行直到?jīng)]有再需要交換,也就是說該數(shù)列已經(jīng)排序完成。這個算法的名字由來是因為越小的元素會經(jīng)由交換慢慢“浮”到數(shù)列的頂端。

為湘潭縣等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及湘潭縣網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站制作、成都做網(wǎng)站、湘潭縣網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

冒泡排序算法的運作如下:

比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。

對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對。在這一點,最后的元素應該會是最大的數(shù)。

針對所有的元素重復以上的步驟,除了最后一個。

持續(xù)每次對越來越少的元素重復上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。

public?class?BubbleSort{??

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

int?score[]?=?{67,?69,?75,?87,?89,?90,?99,?100};??

for?(int?i?=?0;?i??score.length?-1;?i++){????//最多做n-1趟排序??

for(int?j?=?0?;j??score.length?-?i?-?1;?j++){????//對當前無序區(qū)間score[0......length-i-1]進行排序(j的范圍很關鍵,這個范圍是在逐步縮小的)??

if(score[j]??score[j?+?1]){????//把小的值交換到后面??

int?temp?=?score[j];??

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

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

}??

}??????????????

System.out.print("第"?+?(i?+?1)?+?"次排序結果:");??

for(int?a?=?0;?a??score.length;?a++){??

System.out.print(score[a]?+?"\t");??

}??

System.out.println("");??

}??

System.out.print("最終排序結果:");??

for(int?a?=?0;?a??score.length;?a++){??

System.out.print(score[a]?+?"\t");??

}??

}??

}

java中排序算法代碼

package temp;

import sun.misc.Sort;

/**

* @author zengjl

* @version 1.0

* @since 2007-08-22

* @Des java幾種基本排序方法

*/

/**

* SortUtil:排序方法

* 關于對排序方法的選擇:這告訴我們,什么時候用什么排序最好。當人們渴望先知道排在前面的是誰時,

* 我們用選擇排序;當我們不斷拿到新的數(shù)并想保持已有的數(shù)始終有序時,我們用插入排序;當給出的數(shù)

* 列已經(jīng)比較有序,只需要小幅度的調(diào)整一下時,我們用冒泡排序。

*/

public class SortUtil extends Sort {

/**

* 插入排序法

* @param data

* @Des 插入排序(Insertion Sort)是,每次從數(shù)列中取一個還沒有取出過的數(shù),并按照大小關系插入到已經(jīng)取出的數(shù)中使得已經(jīng)取出的數(shù)仍然有序。

*/

public int[] insertSort(int[] data) {

1/11頁

int temp;

for (int i = 1; i data.length; i++) {

for (int j = i; (j 0) (data[j] data[j - 1]); j--) {

swap(data, j, j - 1);

}

}

return data;

}

/**

* 冒泡排序法

* @param data

* @return

* @Des 冒泡排序(Bubble Sort)分為若干趟進行,每一趟排序從前往后比較每兩個相鄰的元素的大?。ㄒ虼艘惶伺判蛞容^n-1對位置相鄰的數(shù))并在

* 每次發(fā)現(xiàn)前面的那個數(shù)比緊接它后的數(shù)大時交換位置;進行足夠多趟直到某一趟跑完后發(fā)現(xiàn)這一趟沒有進行任何交換操作(最壞情況下要跑n-1趟,

* 這種情況在最小的數(shù)位于給定數(shù)列的最后面時發(fā)生)。事實上,在第一趟冒泡結束后,最后面那個數(shù)肯定是最大的了,于是第二次只需要對前面n-1

* 個數(shù)排序,這又將把這n-1個數(shù)中最小的數(shù)放到整個數(shù)列的倒數(shù)第二個位置。這樣下去,冒泡排序第i趟結束后后面i個數(shù)都已經(jīng)到位了,第i+1趟實

* 際上只考慮前n-i個數(shù)(需要的比較次數(shù)比前面所說的n-1要?。?。這相當于用數(shù)學歸納法證明了冒泡排序的正確性

java冒泡排序法代碼

冒泡排序是比較經(jīng)典的排序算法。代碼如下:

for(int i=1;iarr.length;i++){

for(int j=1;jarr.length-i;j++){

//交換位置

} ? ?

拓展資料:

原理:比較兩個相鄰的元素,將值大的元素交換至右端。

思路:依次比較相鄰的兩個數(shù),將小數(shù)放在前面,大數(shù)放在后面。即在第一趟:首先比較第1個和第2個數(shù),將小數(shù)放前,大數(shù)放后。然后比較第2個數(shù)和第3個數(shù),將小數(shù)放前,大數(shù)放后,如此繼續(xù),直至比較最后兩個數(shù),將小數(shù)放前,大數(shù)放后。重復第一趟步驟,直至全部排序完成。

第一趟比較完成后,最后一個數(shù)一定是數(shù)組中最大的一個數(shù),所以第二趟比較的時候最后一個數(shù)不參與比較;

第二趟比較完成后,倒數(shù)第二個數(shù)也一定是數(shù)組中第二大的數(shù),所以第三趟比較的時候最后兩個數(shù)不參與比較;

依次類推,每一趟比較次數(shù)-1;

??

舉例說明:要排序數(shù)組:int[]?arr={6,3,8,2,9,1};?

for(int i=1;iarr.length;i++){

for(int j=1;jarr.length-i;j++){

//交換位置

} ? ?

參考資料:冒泡排序原理

java語言:對包含5個元素的一維數(shù)組用冒泡法進行排序,編程實現(xiàn)并輸出排序后的結果。

代碼:

public class test {

private static void sort(Integer arr[], int n) {

if (n = 1) return; ? ? ? //如果只有一個元素就不用排序了

for (int i = 0; i n; ++i) {

// 提前退出冒泡循環(huán)的標志位,即一次比較中沒有交換任何元素,這個數(shù)組就已經(jīng)是有序的了

boolean flag = false;

for (int j = 0; j n - i - 1; ++j) { ? ? ? ?//此處你可能會疑問的jn-i-1,因為冒泡是把每輪循環(huán)中較大的數(shù)飄到后面,

// 數(shù)組下標又是從0開始的,i下標后面已經(jīng)排序的個數(shù)就得多減1,總結就是i增多少,j的循環(huán)位置減多少

if (arr[j] arr[j + 1]) { ? ? ? ?//即這兩個相鄰的數(shù)是逆序的,交換

int temp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = temp;

flag = true;

}

}

if (!flag) break;//沒有數(shù)據(jù)交換,數(shù)組已經(jīng)有序,退出排序

}

}

public static void main(String[] args) {

Integer arr[] = {2, 6, 3, 67, 54};

sort(arr, arr.length);

System.out.println("冒泡排序后的數(shù)組為");

for (Integer i : arr) {

System.out.println(i);

}

}

}

java排序代碼

整數(shù)轉(zhuǎn)成字符串后排序。import java.util.Arrays;import java.util.Collections;import java.util.List;public class Test { public static void main(String[] args) { List list = Arrays.asList("1", "10", "12", "3", "2", "4", "5"); Collections.sort(list); System.out.println(Arrays.toString(list.toArray())); }}

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

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

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);

}

}

}

文章名稱:java語言排序代碼 java程序排序
URL標題:http://www.rwnh.cn/article6/higdog.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、搜索引擎優(yōu)化、軟件開發(fā)、網(wǎng)站制作微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
互助| 扬中市| 赤水市| 屯留县| 华蓥市| 宿州市| 青海省| 成安县| 溆浦县| 景东| 清水河县| 毕节市| 仁寿县| 日喀则市| 贞丰县| 大余县| 宣恩县| 潮州市| 樟树市| 屯昌县| 婺源县| 四川省| 桂阳县| 鄂托克旗| 丹江口市| 东阿县| 铜川市| 贵阳市| 滕州市| 舒兰市| 安仁县| 敖汉旗| 莱芜市| 安吉县| 兴文县| 城市| 绥阳县| 黎川县| 偏关县| 惠来县| 芮城县|