Heim > Web-Frontend > js-Tutorial > Hauptteil

Zusammenfassung einiger gängiger Algorithmen in JavaScript_Javascript-Kenntnissen

WBOY
Freigeben: 2016-05-16 15:22:55
Original
1015 Leute haben es durchsucht

Nachfolgend finden Sie eine kurze Liste einiger gängiger Algorithmen in JavaScript. Freunde in Not können sich darauf beziehen. Natürlich sind diese Algorithmen nicht nur auf JavaScript anwendbar, sondern auch auf andere Sprachen.

1. Lineare Suche:

Relativ einfacher Einstiegsalgorithmus

//A为数组,x为要搜索的值
function linearSearch(A, x) {
for (var index = 0; index < A.length; index++) {
if (A[index] == x) {
return index;
}
}
return -1;
}
Nach dem Login kopieren

2. Binäre Suche:

Auch als Halbsuche bekannt, eignet sie sich für sortierte lineare Strukturen.

//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;
}
Nach dem Login kopieren

3. Blasensortierung:

//冒泡排序
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;
}
}
}
Nach dem Login kopieren

4. Einfügungssortierung:

//插入排序
//假定当前元素之前的元素已经排好序,先把自己的位置空出来,
//然后前面比自己大的元素依次向后移,直到空出一个"坑",
//然后把目标元素插入"坑"中
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;
}
Nach dem Login kopieren

5. String-Umkehrung:

//字符串反转(比如: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('');
}
Nach dem Login kopieren

Der obige Inhalt stellt kurz eine Zusammenfassung gängiger JavaScript-Algorithmen vor. Ich hoffe, dieser Artikel kann Ihnen helfen.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!