學(xué)習(xí)javascript,實(shí)現(xiàn)插入排序?qū)崿F(xiàn)代碼
更新時(shí)間:2011年07月31日 23:24:57 作者:
首先新建一個(gè)空列表,用于保存已排序的有序數(shù)列(我們稱(chēng)之為"有序列表")。從原數(shù)列中取出一個(gè)數(shù),將其插入"有序列表"中,使其仍舊保持有序狀態(tài)。
插入排序
插入排序是這樣實(shí)現(xiàn)的:
首先新建一個(gè)空列表,用于保存已排序的有序數(shù)列(我們稱(chēng)之為"有序列表")。
從原數(shù)列中取出一個(gè)數(shù),將其插入"有序列表"中,使其仍舊保持有序狀態(tài)。
重復(fù)2號(hào)步驟,直至原數(shù)列為空。
插入排序的平均時(shí)間復(fù)雜度為平方級(jí)的,效率不高,但是容易實(shí)現(xiàn)。它借助了"逐步擴(kuò)大成果"的思想,使有序列表的長(zhǎng)度逐漸增加,直至其長(zhǎng)度等于原列表的長(zhǎng)度。
(引自百度百科)
javascript代碼
<script type="text/javascript">
var org = [5, 4, 3, 2, 1, 6, 7, 9, 8, 10];
var tempArr = new Array();
for (var i = 0; i < org.length; i++) {
if (i == 0) {
tempArr[0] = org[0]; //把第一個(gè)元素放到新序列
} else {
for (var j = 0; j < tempArr.length; j++) {
if (org[i] > tempArr[j]) {
//如果是新序列的最后一個(gè)元素,則插入
if (j == tempArr.length - 1) {
tempArr[j + 1] = org[i];
break;
} else {//如果不是最后一個(gè)元素,則往后移動(dòng)
continue;
}
} else {
//移動(dòng)新序列、然后插入
for (var k = tempArr.length - 1; k >= j; k--) {
tempArr[k + 1] = tempArr[k];
}
tempArr[j] = org[i];
break;
}
}
}
}
alert(tempArr);
</script>
插入排序是這樣實(shí)現(xiàn)的:
首先新建一個(gè)空列表,用于保存已排序的有序數(shù)列(我們稱(chēng)之為"有序列表")。
從原數(shù)列中取出一個(gè)數(shù),將其插入"有序列表"中,使其仍舊保持有序狀態(tài)。
重復(fù)2號(hào)步驟,直至原數(shù)列為空。
插入排序的平均時(shí)間復(fù)雜度為平方級(jí)的,效率不高,但是容易實(shí)現(xiàn)。它借助了"逐步擴(kuò)大成果"的思想,使有序列表的長(zhǎng)度逐漸增加,直至其長(zhǎng)度等于原列表的長(zhǎng)度。
(引自百度百科)
javascript代碼
復(fù)制代碼 代碼如下:
<script type="text/javascript">
var org = [5, 4, 3, 2, 1, 6, 7, 9, 8, 10];
var tempArr = new Array();
for (var i = 0; i < org.length; i++) {
if (i == 0) {
tempArr[0] = org[0]; //把第一個(gè)元素放到新序列
} else {
for (var j = 0; j < tempArr.length; j++) {
if (org[i] > tempArr[j]) {
//如果是新序列的最后一個(gè)元素,則插入
if (j == tempArr.length - 1) {
tempArr[j + 1] = org[i];
break;
} else {//如果不是最后一個(gè)元素,則往后移動(dòng)
continue;
}
} else {
//移動(dòng)新序列、然后插入
for (var k = tempArr.length - 1; k >= j; k--) {
tempArr[k + 1] = tempArr[k];
}
tempArr[j] = org[i];
break;
}
}
}
}
alert(tempArr);
</script>
您可能感興趣的文章:
- JavaScript實(shí)現(xiàn)經(jīng)典排序算法之插入排序
- JS折半插入排序算法實(shí)例
- javascript算法學(xué)習(xí)(直接插入排序)
- JavaScript實(shí)現(xiàn)鏈表插入排序和鏈表歸并排序
- javascript數(shù)據(jù)結(jié)構(gòu)之雙鏈表插入排序?qū)嵗斀?/a>
- JS實(shí)現(xiàn)冒泡排序,插入排序和快速排序并排序輸出
- js排序動(dòng)畫(huà)模擬-插入排序
- js交換排序 冒泡排序算法(Javascript版)
- Javascript中的常見(jiàn)排序算法
- js算法中的排序、數(shù)組去重詳細(xì)概述
- js三種排序算法分享
- JavaScript中幾種常見(jiàn)排序算法小結(jié)
- 基于JavaScript實(shí)現(xiàn)的插入排序算法分析
相關(guān)文章
JavaScript實(shí)現(xiàn)長(zhǎng)圖滾動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)長(zhǎng)圖滾動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04
性能優(yōu)化篇之Webpack構(gòu)建代碼質(zhì)量壓縮的建議
這篇文章主要介紹了性能優(yōu)化篇之Webpack構(gòu)建代碼質(zhì)量壓縮的建議,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04
js判斷樣式className同時(shí)增加class或刪除class
用正則表達(dá)式判斷多個(gè)class之間是否存在真正的class(前后空格的處理)然后增加class刪除class,本文給予實(shí)現(xiàn)方法,感興趣的朋友可以了解下,或許對(duì)你有所幫助2013-01-01
ts依賴(lài)引入報(bào)錯(cuò):無(wú)法找到模塊“xxxxxx”的聲明文件問(wèn)題解決
這篇文章主要給大家介紹了關(guān)于ts依賴(lài)引入報(bào)錯(cuò):無(wú)法找到模塊“xxxxxx”的聲明文件問(wèn)題的解決辦法,文中通過(guò)示例帶將解決辦法介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
Javascript isArray 數(shù)組類(lèi)型檢測(cè)函數(shù)
在日常開(kāi)發(fā)中,我們經(jīng)常需要判斷某個(gè)對(duì)象是否是數(shù)組類(lèi)型的,在js中檢測(cè)對(duì)象類(lèi)型的常見(jiàn)的方法有幾種.2009-10-10
微信小程序MUI側(cè)滑導(dǎo)航菜單示例(Popup彈出式,左側(cè)滑動(dòng),右側(cè)不動(dòng))
這篇文章主要介紹了微信小程序MUI側(cè)滑導(dǎo)航菜單,結(jié)合實(shí)例形式分析了微信小程序Popup彈出式,左側(cè)滑動(dòng),右側(cè)不動(dòng)菜單功能相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2019-01-01
Ajax實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)實(shí)例代碼
這篇文章介紹了Ajax實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04

