大家好,又见面了,我是你们的朋友全栈君。
首先,什么是冒泡排序(BubbleSort)呢?
对未排序的各元素从头到尾依次比较相邻的两个元素大小关系,若大于则交换位置,经过第一轮比较排序后可得出最大值,然后使用同样的方法把剩下的元素逐个比较即可。
假如有N个元素,那么一共要进行N-1轮比较,第M轮要进行N-M次比较。(若6个元素,要进行6-1轮比较,第一轮比较6-1次,第四轮比较6-4次)
package test;
// 数组的排序操作
public class ArraySortDemo {
public static void main(String[] args) {
int[] arr = {1,5,3,9,2,6};
print(arr);//排序之前
bubbleSort(arr);//排序
print(arr);//排序之后
}
//冒泡排序法
static void bubbleSort(int[] arr){
// 为什么是arr.length - times? 假如有6个元素,第times轮需要比较6-times次 ,
//times轮比较
for (int times = 1;times <= arr.length - 1; times++ ){
for (int i = 1;i <= arr.length - times ;i++ ){
if (arr[i-1] > arr[i]){
swap(arr,i-1,i);
}
}
}
}
//交换数组中的两个元素
public static void swap(int[] arr,int index1,int index2){
int temp =arr[index1];
arr[index1] = arr[index2];
arr[index2] = temp;
}
//打印元素的方法
public static void print(int[] arr){
System.out.print("[");
for (int index = 0;index <= arr.length-1 ;index ++ ){
System.out.print(arr[index]);
if (index != arr.length-1){
System.out.print(", ");
}
}
System.out.print("]");
System.out.println();
}
}
结果展示:
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/147293.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...