java代码实现冒泡排序

it2022-05-05  202

冒泡排序的的代码实现

冒泡排序 * 5,6,1,4,9,7,3,10 一共需要比较总的元素-1轮 * 以第一个数5与下一个比较,如果比5大则交换,如第一轮比较5比6小,不交换 * 5,6,1,4,9,7,3,10 * 第二次比较 6与1比较,6大于1,交换 * 5,1,6,4,9,7,3,10 * 第三次比较 6与4比较,交换 * 5,1,4,6,9,7,3,10 * 直到比较的第一轮结束后, * 5,1,4,6,7,3,9,10 * 确定10为最大,不用参加比较,然后继续下一轮比较

具体代码实现,每步都有注释

package demo3; import java.util.Arrays; /** * 冒泡排序 */ public class BubbleSort { public static void main(String[] args) { int[] arr = new int[]{5,6,1,4,9,7,3,10}; bubbleSort(arr); System.out.println("arr = " + Arrays.toString(arr)); } /** * 冒泡排序 * 5,6,1,4,9,7,3,10 一共需要比较arr.length-1轮 * 以第一个数5与下一个比较,如果比5大则交换,如第一轮比较5比6小,不交换 * 5,6,1,4,9,7,3,10 * 第二次比较 6与1比较,6大于1,交换 * 5,1,6,4,9,7,3,10 * 第三次比较 6与4比较,交换 * 5,1,4,6,9,7,3,10 * 直到比较的第一轮结束后, * 5,1,4,6,7,3,9,10 * 确定10为最大,不用参加比较,然后继续下一轮比较 * @param arr */ public static void bubbleSort(int[] arr){ for(int i=0;i<arr.length-1;i++){//控制比较多少轮 for(int j=0;j<arr.length-1-i;j++){ //i<arr.length-1-i,比较的次数,每比较完一轮,就减去最后一个数,使之不参与比较 //把这一轮里的两个数进行比较 if(arr[j]>arr[j+1]){//1,把第一个数与第二个数进行比较,如果第一个大于第二个,则进行交换位置 int temp = arr[j];//2,先把大于的这个数赋值给一个临时变量 arr[j]=arr[j+1];//把小于的这个数赋值给前面这个 arr[j+1]=temp;//交换位置完成 } } } } }

最新回复(0)