算法入门-从冒泡排序开始
这个算法的名字由来,是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
基本原理
从左往右是从小到大
的顺序。在给出的N个数的数列中,需要遍历
N-1
趟,每i趟需要遍历
N-i
(1≤i≤n-1)次。
public static void main(String[] args) {
//测试
int[] arr = new int[]{2, 4, 3, 9, 5, 7, 6};
int[] sortedArr = bubblingSort(arr);
for (int i = 0; i < sortedArr.length; i++) {
System.out.print(sortedArr[i]+",");//2,3,4,5,6,7,9,
}
}
/**
* 冒泡排序
* @param arr
* @return 排序后的数组
*/
public static int[] bubblingSort(int[] arr) {
//检查边界条件
if (arr == null || arr.length < 2) {
return null;
}
int temp;
//关键算法
for (int i = 0; i < arr.length - 1; i++) {//趟数
for (int j = 0; j < arr.length - i - 1; j++) {//次数,每一趟减少一次
if (arr[j] > arr[j+1]) {//交换两个数
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
时间复杂度
写在最后