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

