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