學(xué)習(xí)javascript,實(shí)現(xiàn)插入排序?qū)崿F(xiàn)代碼
更新時(shí)間:2011年07月31日 23:24:57 作者:
首先新建一個(gè)空列表,用于保存已排序的有序數(shù)列(我們稱之為"有序列表")。從原數(shù)列中取出一個(gè)數(shù),將其插入"有序列表"中,使其仍舊保持有序狀態(tài)。
插入排序
插入排序是這樣實(shí)現(xiàn)的:
首先新建一個(gè)空列表,用于保存已排序的有序數(shù)列(我們稱之為"有序列表")。
從原數(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ù)列(我們稱之為"有序列表")。
從原數(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)畫模擬-插入排序
- js交換排序 冒泡排序算法(Javascript版)
- Javascript中的常見排序算法
- js算法中的排序、數(shù)組去重詳細(xì)概述
- js三種排序算法分享
- JavaScript中幾種常見排序算法小結(jié)
- 基于JavaScript實(shí)現(xiàn)的插入排序算法分析
相關(guān)文章
JavaScript中的Reflect對(duì)象詳解(ES6新特性)
這篇文章主要介紹了JavaScript中的Reflect對(duì)象(ES6新特性)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07js 定義對(duì)象數(shù)組(結(jié)合)多維數(shù)組方法
下面小編就為大家?guī)硪黄猨s 定義對(duì)象數(shù)組(結(jié)合)多維數(shù)組方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07如何使用50行javaScript代碼實(shí)現(xiàn)簡(jiǎn)單版的call,apply,bind
這篇文章主要介紹了50行javaScript代碼實(shí)現(xiàn)簡(jiǎn)單版的call,apply,bind過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08JavaScript腳本性能優(yōu)化注意事項(xiàng)
本文總結(jié)了我在JavaScript編程中所找到的提高JavaScript運(yùn)行性能的一些方法,其實(shí)這些經(jīng)驗(yàn)都基于幾條原則2008-11-11JavaScript中的"=、==、==="區(qū)別講解
今天小編就為大家分享一篇關(guān)于JavaScript中的"=、==、==="區(qū)別講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-01-01javascript中的return和閉包函數(shù)淺析
這篇文章主要介紹了javascript中的return和閉包函數(shù)淺析,至少可以讓你搞懂那么多()是什么意思,需要的朋友可以參考下2014-06-06JavaScript中發(fā)出HTTP請(qǐng)求最常用的方法
JavaScript具有很好的模塊和方法來發(fā)送可用于從服務(wù)器端資源發(fā)送或接收數(shù)據(jù)的HTTP請(qǐng)求。這篇文章主要介紹了JavaScript中發(fā)出HTTP請(qǐng)求最常用的方法,需要的朋友可以參考下2018-07-07