如何利用JavaScript實(shí)現(xiàn)排序算法淺析
冒泡排序
冒泡排序就是重復(fù)從序列右邊開始比較相鄰兩個(gè)數(shù)字的大小,再根據(jù)結(jié)果交換兩個(gè)數(shù)字的位置。
JavaScript代碼實(shí)現(xiàn):
代碼簡介:聲明一個(gè)數(shù)組變量,通過while給數(shù)組變量賦值,當(dāng)輸入“#”時(shí)停止輸入,然后遍歷相鄰的兩個(gè)數(shù),讓相鄰的兩個(gè)數(shù)升序排列,遍歷n-1次實(shí)現(xiàn)排序;
var a = Array();
flag=true;
var i = 0;
var j = 0;
var temp = 0;
while(flag){
var b = prompt("請輸入第i個(gè)數(shù)字:");
if(b=="#"){
flag=false;
}else{
a[i] = b;
}
i++;
}
s = a.length;
for(j=0;j<s;j++){
console.log(a[j]);
}
for(j=1;j<s;j++){
for(i=0;i<s-j;i++){
if(a[i]>a[i+1]){
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
for(j=0;j<s;j++){
console.log("升序:",a[j]);
}
輸入3,4,2,8,6。輸出結(jié)果如下:

選擇排序
選擇排序就是重復(fù)從待排序的數(shù)據(jù)中尋找最小值,將其與序列最左邊的數(shù)字進(jìn)行交換
JavaScript代碼實(shí)現(xiàn):
var a = Array();
flag=true;
var i = 0;
var j = 0;
var temp = 0;
while(flag){
var b = prompt("請輸入第i個(gè)數(shù)字:");
if(b=="#"){
flag=false;
}else{
a[i] = b;
}
i++;
}
s = a.length;
for(j=0;j<s;j++){
console.log("數(shù)組:",a[j]);
}
for(i=0;i<s;i++){
for(j=0;j<s;j++){
if(a[i]>a[j]){
temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
}
for(j=s-1;j>=0;j--){
console.log("選擇排序:",a[j]);
}

插入排序
插入排序算法:通過構(gòu)建有序數(shù)組元素的存儲,對未排序的數(shù)組元素,在已排序的數(shù)組中從最后一個(gè)元素向第一個(gè)元素遍歷,找到相應(yīng)位置并插入。
js代碼實(shí)現(xiàn):
var flag = true;
var a = new Array();
var i=0;
while(flag){
var s = prompt('請輸入一個(gè)數(shù):');
if(s=='#'){
flag=false;
}else{
a[i] = s;
}
i++;
}
console.log(a);
for(var i=1;i<a.length;i++){
for(var j = i;j>0;j--){
if(a[j-1]>a[j]){
var temp = a[j-1];
a[j-1] = a[j];
a[j] = temp;
}
}
}
for(var i=0;i<a.length;i++){
console.log(a[i]);
}
輸入5,3,7,4,8,1,6。輸出結(jié)果如下:

總結(jié)
到此這篇關(guān)于如何利用JavaScript實(shí)現(xiàn)排序算法的文章就介紹到這了,更多相關(guān)js實(shí)現(xiàn)排序算法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Threejs與Tween.js結(jié)合創(chuàng)建動畫的詳細(xì)圖文教程
three.js和tween.js可以一起使用,實(shí)現(xiàn)復(fù)雜的動畫效果,包括飛線動畫,這篇文章主要給大家介紹了關(guān)于Threejs與Tween.js結(jié)合創(chuàng)建動畫的相關(guān)資料,需要的朋友可以參考下2024-01-01
左側(cè)是表頭的JS表格控件(自寫,網(wǎng)上沒有的)
左側(cè)是表頭的JS表格大家有木有遇到過呀,實(shí)在是沒有發(fā)現(xiàn),于是自己動手豐衣足食,特獻(xiàn)上實(shí)現(xiàn)代碼與大家共享,有類似需求的朋友可以參考下哈2013-06-06
用Fundebug插件記錄網(wǎng)絡(luò)請求異常的方法
這篇文章主要介紹了用Fundebug插件記錄網(wǎng)絡(luò)請求異常的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-02-02
JavaScript實(shí)現(xiàn)網(wǎng)頁頭部進(jìn)度條刷新
這篇文章主要介紹了JavaScript實(shí)現(xiàn)網(wǎng)頁頭部進(jìn)度條刷新實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-04-04

