冒泡排序属于稳定排序 ,他的时间复杂度为O(n^2)
思路:每次比较两个相邻的元素,将值大的元素交换到右边
过程:第一次从第一个开始比较,第二次从第二个开始。。。
一共需要比较n-1次,因为冒泡排序每一次都是让该数不断确定自己的位置,所以当不发生交换的时候我们就跳出这次的排序因为位置已经是正确的了,可减少排序次数
import java.util.Arrays; public class BubbleSort { public static void main(String[] args) { int arr[] = {3, 9, -1, 10, 20}; bubbleSort(arr); System.out.println(Arrays.toString(arr)); } public static int[] bubbleSort ( int[] arr){ int temp = 0; boolean flag = false; for (int i = 0; i <= arr.length; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { flag = true; temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } if (!flag) { break; } else { flag = false; } } return arr; } }
原文:https://www.cnblogs.com/bingbug/p/12105741.html