JavaScripによくあるアルゴリズムのまとめ
1993 ワード
以下は簡単にjavascriptによくあるアルゴリズムを挙げます.必要な友達は参考にしてください.もちろんこれらのアルゴリズムはjavascriptだけでなく、他の言語にも適用されます.
一.線形検索:
比較的簡単で、入門級のアルゴリズムに属します.
また、半分割ルックアップとも呼ばれ、整列された線形構造に適用されます.
一.線形検索:
比較的簡単で、入門級のアルゴリズムに属します.
//A ,x
function linearSearch(A, x) {
for (var index = 0; index < A.length; index++) {
if (A[index] == x) {
return index;
}
}
return -1;
}
二分検索:また、半分割ルックアップとも呼ばれ、整列された線形構造に適用されます.
//A " " ,x
//
function binarySearch(A, x) {
var low = 0, high = A.length - 1;
while (low <= high) {
var mid = Math.floor((low + high) / 2); //
if (x == A[mid]) {
return mid;
}
if (x < A[mid]) {
high = mid - 1;
}
else {
low = mid + 1;
}
}
return -1;
}
三.泡の並べ替え:
//
function bubbleSort(A) {
for (var i = 0; i < A.length; i++) {
var sorted = true;
// :
for (var j = A.length - 1; j > i; j--) {
if (A[j] < A[j - 1]) {
swap(A, j, j - 1);
sorted = false;
}
}
if (sorted) {
return;
}
}
}
四.並べ替えを挿入する:
//
// , ,
// , " ",
// " "
function insertSort(A) {
for (var index= 1; index< A.length; index++) {
var x = A[index];
for (var j = index- 1; j >= 0 && A[j] > x; j--) {
A[j + 1] = A[j];
}
if (A[j + 1] != x) {
A[j + 1] = x;
println(A);
}
}
return A;
}
五.文字列の反転:
// ( :ABC -> CBA)
function inverse(s) {
var arr = s.split('');
var index= 0, j = arr.length - 1;
while (index< j) {
var t = arr[index];
arr[index] = arr[j];
arr[j] = t;
index++;
j--;
}
return arr.join('');
}
以上の内容はJavaScripでよく見られるアルゴリズムのまとめを簡単に紹介しました.