二分一般針對有序排序的數 亂序排列 可以學習最簡單的選擇排序
選擇排序速度並不快 但是很好懂
比如乙個集合 [99,85,43,70,20,88]
第一次選擇最小的數 20
第二次選擇最小的數 43
第三次選擇最小的數 70
第四次選擇最小的數85
第五次選擇最小的數88
第六次選擇最小的數99
用大o表示法 o (n的平方) 這裡的數有6個 正常來講的 是 36次
而這裡沒有嚴格的按照這個來 次數是 6 + 5 + 4 + 3 + 2 + 1次 執行的次數為 6*1/2*7 n*1/2*(n+1)
平均檢查的元素為(n+1)/2
let score = [99, 85, 43, 70, 20, 88];//乙個分數的集合
function getmin(list)
}return minindex;//返回返回值 用下標好一點 因為可以根據下標刪除
}function search(list){
var newlist = ;
for(var i=0;i執行結果
額外補充 這種陣列操作 還有另外一種 鍊錶
陣列的 查詢 讀取速度快
鍊錶的刪除和新增塊
java 演算法3 選擇排序
筆記個人整理 選擇排序 原理 每次都找到當次最大的數,按大小順序依次放入陣列相應位置 比如 第一次先找到最大的數並記下其位置,如果其不在陣列第一位,則將其與第一位交換,使最大數置於第一位 第二次再迴圈查詢第二大的數並記下其位置,如果其不在陣列第二位,則將其與第二位交換,使最大數置於第二位 依次類推....
演算法總結(3)選擇排序
一.演算法思路 總是選擇在未排序的一群數中最小的數來放到已排序的那些數的後面,即把它放到未排序數的最前面,現在它成了已排序的一部分。注意 已排序的那部分是全域性的排序,就是說,他不會被衝中間插入,是全域性排序,最終排序的前面那一部分,而不是像插入排序那樣,可能與最終排序結果不太一樣。步驟 先是選出最...
前端不懂演算法(二) 插入排序,選擇排序
選擇排序 排序系列開篇問題 內容小結 本節我們一期學習乙個新的排序演算法,插入排序 首先需要思考,乙個有序的陣列,在往裡面插入乙個新的資料之後,如何保持資料有序呢?很簡單,我們只需要遍歷資料,找到資料應該插入的地方,將其插入即可。這是乙個動態排序的過程,即動態的往有序集合裡新增資料,我們可以通過這種...