1. 选择排序

  1. let arr = [123, 23, 32, 3, 21, 3, 1, 5, 723, 2]
  2. function selectedSort(arr) {
  3. const len = arr.length
  4. for (let i = 0; i < len - 1; i++) {
  5. let minindex = i
  6. for (let j = i + 1; j < len; j++) {
  7. if (arr[minindex] > arr[j]) {
  8. minindex = j
  9. }
  10. }
  11. if (minindex !== i) {
  12. [arr[minindex], arr[i]] = [arr[i], arr[minindex]]
  13. }
  14. }
  15. console.log(arr);
  16. }
  17. selectedSort(arr)

2. 冒泡排序

  1. function bubbingSort(arr){
  2. const len = arr.length
  3. for(let i = len-1;i>0;i--){
  4. for(let j=0;j<i;j++){
  5. if(arr[j]>arr[j+1]){
  6. [arr[j],arr[j+1]] =[arr[j+1],arr[j]]
  7. }
  8. }
  9. }
  10. return arr
  11. }

3. 插入排序

  1. // 原理:就是从一个未排序的数组中先从索引为1的开始 选为开始的值,然后让它与左侧的值进行比较 如果左侧的值比当前的start值还要大,把左侧位置的值插入到后面,然后在进行比较,如果前面的值没有比start值大,将当前的start值插到当前索引所表示的位置,则结束此次循环 从下一个索引继续重复执行以上的操作
  2. let arr = [1, 3, 13, 41, 231, 421, 2, 3, 523]
  3. function insertSort(arr) {
  4. const len = arr.length
  5. for (let i = 1; i < len; i++) {
  6. const start = arr[i]
  7. let j = i - 1
  8. while (j >= 0 && arr[j] > start) {
  9. arr[j + 1] = arr[j]
  10. j--
  11. }
  12. arr[j + 1] = start
  13. }
  14. return arr
  15. }
  16. console.log(insertSort(arr));