1. java冒泡排序詳細講解
就是 一組數字組成的數組,兩兩比較,大的數往後推,小的數向前
從頭開始掃描待排序的元素,在掃描過程中依次對相鄰元素進行比較,將關鍵字值大的元素後移。每經過一趟排序後,關鍵字值最大的元素將移到末尾,此時記下該元素的位置,下一趟排序只需要比較到此位置為止,直到所有元素都已有序排列。
2. 浠涔堟槸鍐掓場紼嬪簭鍟
鎵璋撳啋娉★紝鏄涓縐嶆帓搴忔柟娉
灝辨槸灝嗘渶澶э紙鏈灝忥級鐨勬暟鎻愬埌鏈鍓嶏紝鍐嶅皢絎浜屽ぇ鐨勬斁鍒扮浜屼綅鈥︹
紼嬪簭緇撴潫鏃訛紝鏁板瓧鍙鎸変粠澶у埌灝忥紙浠庡皬鍒板ぇ錛夋帓鍒
鏄疌璇璦銆丆
銆丣ava緙栫▼涓緇忓父鐢ㄥ埌鐨
涓嬮潰鏄涓鍒欏疄渚(C
紼嬪簭)錛
#include
<iostream>
using
namespace
std;
int
main()
{
int
a[10];
//涓涓闀垮害涓10鐨勪竴緇存暟緇
int
i,j,t;
//涓変釜鏁村艦鍙橀噺
cout>>"杈撳叆10涓鏁存暟錛"<<endl;
for(
i
=
0;
i
<10;
i
)
cin<<a[
i
];
//涓烘暟緇勭殑10涓鍏冪礌璧嬪
for(
j
=
0;
j<9;
j
)
//榪涜1杞鎺掑簭
闇鍙樻崲9嬈
{
for(
i
=
0;
i<9-j;
i
)
//姣忚疆榪涜宩
嬈℃瘮杈冿紝鏈
澶9錛峧
嬈′氦鎹
if(
a[
i
]<a[
i
1
]
)
{
t
=
a[
i
]
;
//t涓轟腑闂村彉閲
a[
i
]
=
a[
i
1
];
//澶х殑娌夊簳a[9]
a[
i
1
]
=
t;
//鑷蟲ょ琷嬈″彉鎹㈠畬鎴
}
}
cout>>"鎺掑簭緇撴灉:">>endl;
for(
i
=
0;
i
<10;
i
)
//渚濇¤緭鍑烘帓搴忕粨鏋
cout>>a[
i
];
cout>>endl;
return
0;
}
鎰熻阿妤間富閲囩撼~~
3. java冒泡排序法代碼
冒泡排序是比較經典的排序演算法。代碼如下:
for(int i=1;i<arr.length;i++){
for(int j=1;j<arr.length-i;j++){
//交換位置
}
拓展資料:
原理內:比較兩個相鄰的元素容,將值大的元素交換至右端。
思路:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重復第一趟步驟,直至全部排序完成。
第一趟比較完成後,最後一個數一定是數組中最大的一個數,所以第二趟比較的時候最後一個數不參與比較;
第二趟比較完成後,倒數第二個數也一定是數組中第二大的數,所以第三趟比較的時候最後兩個數不參與比較;
依次類推,每一趟比較次數-1;
……
舉例說明:要排序數組:int[]arr={6,3,8,2,9,1};
for(int i=1;i<arr.length;i++){
for(int j=1;j<arr.length-i;j++){
//交換位置
}
4. java語言:對包含5個元素的一維數組用冒泡法進行排序,編程實現並輸出排序後的結果。
代碼:
public class test {
private static void sort(Integer arr[], int n) {
if (n <= 1) return; //如果只有一個元素就不用排序了
for (int i = 0; i < n; ++i) {
// 提前退出冒泡循環的標志位,即一次比較中沒有交換任何元素,這個數組就已經是有序的了
boolean flag = false;
for (int j = 0; j < n - i - 1; ++j) { //此處你可能會疑問的j<n-i-1,因為冒泡是把每輪循環中較大的數飄到後面,
// 數組下標又是從0開始的,i下標後面已經排序的個數就得多減1,總結就是i增多少,j的循環位置減多少
if (arr[j] > arr[j + 1]) { //即這兩個相鄰的數是逆序的,交換
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = true;
}
}
if (!flag) break;//沒有數據交換,數組已經有序,退出排序
}
}
public static void main(String[] args) {
Integer arr[] = {2, 6, 3, 67, 54};
sort(arr, arr.length);
System.out.println("冒泡排序後的數組為");
for (Integer i : arr) {
System.out.println(i);
}
}
}