1.冒泡排序
作為最簡單的排序算法之一,冒泡排序的思想是,從左到右依次比較兩個存儲數據的大小,如果第一個數大於第二個數,就交換兩個數據,這樣一輪比較之后,最大的數會放在后面,這樣,每次循環比較,本輪中的最大值都會排到最后,直到循環結束,實現數組升序。
動圖演示如下:

代碼如下:

首先定義外層循環,如果有n個數據進行循環比較,最后一次循環排序,最后兩個值的大小已經確定,所以最后一個數值不需要參與循環,即n-1次,這里就是(arr.length-1) -1次;
定義內層循環,當前位i和i+1進行比較,當前循環的最后一位,只需要通過跟前一位比較即可,不需要參與循環,次數減1,而且每循環1次,排出的最大值都不需要再參與下次的循環,循環j次,可以排列出j個數,所以內循環循環的次數為(arr.length-1) -1 - j;若當前位數據大於下一位,即交換數據,用if判斷。最后控制台輸出查看。
2.選擇排序
選擇排序,是從起始位置開始,找最小的數值所在的索引,如果最終存儲的索引不是起始位置,就與起始位置交換存儲數據,每執行一次循環,會將最小值存儲在起始位置上。
動圖演示如下:

同樣,先定義外層循環,實現排序循環次數,次數是單元個數 -1,即arr.length-1 -1;
定義內層循環,先默認起始位置就是最小值位置,存儲起始位置的索引,也就是arr.length-1;用if進行數據大小的判斷,若j>j+1,則存儲j+1位的索引,即min=i;最后通過判斷存儲的索引如果不是最開始存儲的j,則交換存儲的數據。
冒泡排序和選擇排序是排序算法的其中兩種。
在執行上,冒泡排序,每發生一次大小順序問題,就交換一次數據;選擇排序發生大小問題時,只是做賦值索引的操作,循環結束,才發生一次交換數據的操作。
冒泡排序執行數據交換的操作比較繁瑣,執行效率低於選擇排序。
