package com.sort;
public class BubbleSortTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] unsort = new int[] {49, 38, 65, 97, 13, 27, 76, 49};
for(int i = 0 ; i < unsort.length; i++) {
System.out.print(unsort[i] + " ");
}
System.out.println("\n********************************************");
bubbleSort(unsort);
for(int i = 0 ; i < unsort.length; i++) {
System.out.print(unsort[i] + " ");
}
}
/*
* 每次比较相邻两个数的大小,array[j]大于array[j + 1]的话则交换两个数
* 每一轮都会找到最大的一个数,放在最后
* 由于是相邻两个数的比较,不会改变值相同元素的相对位置,因此,冒泡排序是一种稳定排序法
* */
public static void bubbleSort(int[] array) {
boolean flag = true;//flag用来记录是否有交换动作,没有的话则表示已经是有序数组,直接退出
for (int i = 0; flag && i < array.length; i++) {
flag = false;//每次比较前将flag置为false,即没有交换动作
for (int j = 0; j < array.length - i - 1; j++) {
if (array[j] > array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
flag = true;//有交换动作
}
}
}
}
}
冒泡排序java
最新推荐文章于 2024-06-07 09:15:00 发布