排序演算法以及二分查詢的簡單JS實現

2021-08-26 05:22:52 字數 1103 閱讀 4495

氣泡排序: 比較兩個相鄰的項,如果第乙個大於第二個則交換他們的位置,元素項向上移動至正確的順序,就好像氣泡往上冒一樣

氣泡排序demo:

function bubblesort(arr) }}

return arr;

}

選擇排序:大概思路是找到最小的放在第一位,找到第二小的放在第二位,以此類推

選擇排序demo:

function selectionsort(arr) 

}[arr[i], arr[minindex]] = [arr[minindex], arr[i]];

}return arr;

}

插入排序:每次排乙個陣列項,假設陣列的第一項已經排序,接著,把第二項與第一項進行對比,第二項是該插入到第一項之前還是之後,第三項是該插入到第一項之前還是第一項之後還是第三項

插入排序demo:

function insertionsort(arr) 

arr[preindex + 1] = current;

} return arr;

}

二分查詢

(1)首先,從有序陣列的中間的元素開始搜尋,如果該元素正好是目標元素(即要查詢的元素),則搜尋過程結束,否則進行下一步。

(2)如果目標元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半區域查詢,然後重複第一步的操作。

(3)如果某一步陣列為空,則表示找不到目標元素。

二分查詢demo:

function binary_search(arr,key) else if (key > arr[mid])else if (key < arr[mid])else 

}}// 遞迴演算法demo

function binary_searchs(arr, low, high, key)

let mid = parseint((high + low) / 2);

if(arr[mid] === key)else if (arr[mid] > key)else if (arr[mid] < key)

}

二分查詢以及變體 JS

常規二分法 function twopart nums,key return 1 小於 小於等於的最後乙個數 function twopartsmall nums,key return hi 大於 大於等於的第乙個數 function twopartbig nums,key return lo 減而...

排序演算法 二分查詢

1氣泡排序 相鄰比較,大的放右邊,最大值在索引最大處 for int i 0 ilength 1 i 2.選擇排序 第乙個元素拿出來,與該元素右邊的元素按順序比較,小的元素放左邊,第一比較結束,最小索引出現最小值 第二個元素拿出來,重複第一元素的步驟。for int i 0 ilength 1 i ...

二分查詢以及改進演算法

二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置記錄將表分成前 後...