.原理:比較兩個相鄰的元素,將值大的元素交換到右邊
思路:依次比較相鄰的兩個數,將比較小的數放在前面,比較大的數放在後面。
function
bubblesort
(arr)}}
}bubblesort
(arr1)
;
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。
重複第二步,直到所有元素均排序完畢。
function
selectsort
(arr)
}var temp = arr[i]
; arr[i]
= arr[minindex]
; arr[minindex]
= temp;}}
selectsort
(arr1)
;
const
quicksort
=(array)
=>
let i = left
let j = right
const baseval = arr[j]
// 取無序陣列最後乙個數為基準值
while
(i < j)
arr[j]
= arr[i]
// 將較大的值放在右邊如果沒有比基準值大的數就是將自己賦值給自己(i 等於 j)
while
(j > i && arr[j]
>= baseval)
arr[i]
= arr[j]
// 將較小的值放在左邊如果沒有找到比基準值小的數就是將自己賦值給自己(i 等於 j)
} arr[j]
= baseval // 將基準值放至**位置完成一次迴圈(這時候 j 等於 i )
sort
(arr, left, j -1)
// 將左邊的無序陣列重複上面的操作
sort
(arr, j +
1, right)
// 將右邊的無序陣列重複上面的操作
}const newarr = array.
concat()
// 為了保證這個函式是純函式拷貝一次陣列
sort
(newarr)
return newarr
}console.
log(
quicksort([
2,41,
3,1,
45,6,
78,4]
));
基本的排序演算法
演算法思路 假設a 1 n 是乙個有n個元素的陣列。首先從a 1 n 找到最小元素,將其放在a 1 中 從a 2 n 中找到最小元素,將其放在a 2 中 重複a i n 中找到最小元素,將其放在a i 中 直至i n 1 元素比較次數 n i 1 n i ni 1i n n 1 2 時間複雜度為o ...
基本的排序演算法
時間複雜度o n2 空間複雜度o 1 穩定 public void bubblesort int a 時間複雜度 o n2 空間複雜度o 1 不穩定 public void selectsort int a int temp a i a i a min a min temp 時間複雜度 o n2 空...
基本的排序演算法
容易的演算法效率比較低,但是容易理解。每乙個python的排序函式都會使用乙個swap的函式來交換列表中的兩項的位置,函式的 如下 def swap lyst,i,j 交換lyst中的i和j位置的item temp lyst i lyst i lyst j lyst j temp pass或者pyt...