冒泡排序的原理:
1.比较相邻的元素。如果前一个元素比后一个元素大,就交换这两个元素的位置。
2.对每一对相邻元素做相同的工作,从开始第一对元素到结尾最后一对元素,最终最后一位元素是最大值。
3.冒泡排序的英文Bubble Sort,是一种最基础的交换排序。之所以叫做冒泡排序,因为每一个元素都可以像小气泡一样,根据自身大小一点一点向数组的一侧移动。
举例:
public class SortTest {
public static void main(String[] args)
{
int[] arr = {23, 45, 12, 8, 3, 2, 55, 34, 87, 21};
// 冒泡排序 稳定
buddleSort(arr);
}
// 冒泡排序 稳定
public static void buddleSort(int[] arr) {
int temp;
for (int i = arr.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j+ 1];
arr[j+1] = temp;
}
}
}
}
个人做法:
public class Shi1 {
public static void main(String[] args) {
int[] arr={2,6,5,8,7,3,9,1,4};
for(int i = 0; i<arr.length-1; i--){
int a = 0;
for(int j=arr.length-2 ;j>=0;j--) {
if (arr[j] > arr[j +1]) {
a = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = a;
System.out.println(a);
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
}
冒泡排序其实就是先定义第一个元素是最小值,然后通过for循环将后面的元素与之相比较,如果发现后面的数比它小,那么就通过第三个数给这两个数相互赋值,将这两个数的元素互换位置,从而达到想要的排序效果。