Skip to content

Instantly share code, notes, and snippets.

@iinsta
Last active May 12, 2018 06:24
Show Gist options
  • Save iinsta/bd6d5becc9521e97a9f67e89a68e9474 to your computer and use it in GitHub Desktop.
Save iinsta/bd6d5becc9521e97a9f67e89a68e9474 to your computer and use it in GitHub Desktop.
二分查找和快速排序
function swap(arr, i, j) {
[arr[i], arr[j]] = [arr[j], arr[i]]
}
function quickSort(arr, low, high) {
let i, last;
if (low < high) {
last = low;
for (i = low + 1; i <= high; i++) {
if (arr[i] < arr[low]) {
last++;
swap(arr, last, i);
}
}
swap(arr, last, low);
quickSort(arr, low, last - 1);
quickSort(arr, last + 1, high);
}
}
function bubbleSort(arr) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] > arr[i + 1]) {
swap(arr, i, i + 1)
}
}
return arr;
}
function binarySearch(array, value) {
var guess,
min = 0,
max = array.length - 1;
while (min <= max) {
guess = Math.floor((min + max) / 2);
if (array[guess] === value)
return guess;
else if (array[guess] < value)
min = guess + 1;
else
max = guess - 1;
}
return -1;
}
function generalSearch(arr, data) {//普通的顺序查找,就是遍历一遍看是否找到
for (var i = 0; i < arr.length; i++) {
if (arr[i] == data) {
return true;
}
}
return false;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment