前言
眾所周知,算法與JVM、源碼以及高并發(fā)等并列,是大廠的必考知識(shí)點(diǎn)之一。因此,掌握數(shù)據(jù)結(jié)構(gòu)與算法是很有必要的!
筆記分為數(shù)據(jù)結(jié)構(gòu)與算法兩大部分,從最基礎(chǔ)的算法開(kāi)始,從零開(kāi)始掌握,爭(zhēng)取每天能夠?qū)W會(huì)一種數(shù)據(jù)結(jié)構(gòu)/算法即可。
快速開(kāi)始
常見(jiàn)的排序算法有6種,分別為:冒泡排序、選擇排序、插入排序、希爾排序、歸并排序以及快速排序,下面全部十種經(jīng)典排序算法的時(shí)間與空間復(fù)雜度表。

3af26595b2dbc49047a0c66e7ad4fd0f.png
1.冒泡排序
實(shí)現(xiàn)思想:像水中的泡泡一樣,按照從小到大或者從大到小的順序(一般是從小到大),依次將每一個(gè)元素遍歷對(duì)比后面的元素取出來(lái)最小(大)的放到最前面的位置。
package deepinsea;
import java.util.Arrays;
/**
* @author deepinsea
* @data 2021/6/10 13:44
*/
public class 冒泡排序 {
public static void main(String[] args) {
int[] arr = new int[]{2,8,5,6,9,7,1};
System.out.println(Arrays.toString(arr));
bubble(arr);
System.out.println(Arrays.toString(arr));
}
public static int[] bubble(int[] arr){
// 外循環(huán),需要遍歷的元素個(gè)數(shù)
for (int i = 0; i < arr.length-1; i++) {
// 內(nèi)循環(huán),元素遍歷的次數(shù)
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j+1]){
int temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
}
我是Java白羊??,一只想做全棧的小羊,感謝大家的觀看ヾ(?°?°?)??!