国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之基本排序算法定義與效率比較【冒泡、

2024-05-06 15:42:13
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講述了JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之基本排序算法定義與效率比較。分享給大家供大家參考,具體如下:

javascript數(shù)據(jù)結(jié)構(gòu)與算法--基本排序算法(冒泡、選擇、排序)及效率比較

一、數(shù)組測(cè)試平臺(tái)

javascript數(shù)據(jù)結(jié)構(gòu)與算法--基本排序(封裝基本數(shù)組的操作),封裝常規(guī)數(shù)組操作的函數(shù),比如:插入新數(shù)據(jù),顯示數(shù)組數(shù)據(jù),還有交換數(shù)組元素等操作來(lái)調(diào)用不同的排序算法

function CArray(numElements) {  this.dataStore = [];  this.pos = 0;//是一個(gè)索引值,默認(rèn)為0,從第一個(gè)開(kāi)始  this.numElements = numElements;//是保存所有的數(shù)組元素  this.insert = insert;//向數(shù)組中插入一個(gè)元素的方法  this.toString = toString;//顯示數(shù)組中所有元素  this.clear = clear;//清空數(shù)組數(shù)據(jù)  this.setData = setData;//生成了存儲(chǔ)在數(shù)組中的隨機(jī)數(shù)字  this.swap = swap;//交換數(shù)組中兩個(gè)元素的位置  this.bubbleSort = bubbleSort;  /*將傳入的數(shù)組,存儲(chǔ)在datastore中*/  for (var i = 0; i < numElements.length; ++i) {    this.dataStore[i] = numElements[i];  }}function setData() {  for (var i = 0; i < this.numElements; ++i) {    this.dataStore[i] = Math.floor(Math.random() *      (this.numElements+1));  }}function clear() {  for (var i = 0; i < this.dataStore.length; ++i) {    this.dataStore[i] = 0;  }}function insert(element) {  this.dataStore[this.pos++] = element;}function toString() {  var retstr = "";  for (var i = 0; i < this.dataStore.length; ++i) {    retstr += this.dataStore[i] + " ";    if (i > 0 && i % 10 == 0) {      retstr += "/n";    }  }  return retstr;}function swap(arr, index1, index2) {  var temp = arr[index1];  arr[index1] = arr[index2];  arr[index2] = temp;}//測(cè)試生成一組數(shù)組數(shù)據(jù)(隨機(jī)數(shù))var numElements = 100;var myNums = new CArray(numElements);myNums.setData();console.log(myNums.toString());

17 94 81 80 25 24 73 76 24 35 81
63 81 59 4 76 30 47 73 98 18
54 36 53 47 22 60 88 41 66 24
73 94 40 45 72 74 14 61 92 48
36 12 42 11 12 82 24 84 60 1
17 98 63 36 84 13 18 50 89 26
98 1 6 54 52 69 6 52 98 14
79 28 19 69 76 99 97 100 10 7
24 54 81 73 18 21 45 73 66 30
28 56 54 21 88 31 20 86 48

二、冒泡排序算法

我們先來(lái)了解一下冒泡排序算法,它是最慢的排序算法之一,但也是一種最容易實(shí)現(xiàn)的排序算法。

之所以叫冒泡排序是因?yàn)槭褂眠@種排序算法排序時(shí),數(shù)據(jù)值會(huì)像氣泡一樣從數(shù)組的一端漂浮到另一端。

假設(shè)正在將一組數(shù)字按照升序排列,較大的值會(huì)浮動(dòng)到數(shù)組的右側(cè),而較小的值則會(huì)浮動(dòng)到數(shù)組的左側(cè)。

之所以會(huì)產(chǎn)生這種現(xiàn)象是因?yàn)樗惴〞?huì)多次在數(shù)組中移動(dòng),比較相鄰的數(shù)據(jù),當(dāng)左側(cè)值大于右側(cè)值時(shí)將它們進(jìn)行互換。

JS代碼如下:

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 太保市| 福泉市| 潮州市| 城固县| 隆子县| 大名县| 嵊州市| 文水县| 富阳市| 通山县| 会泽县| 香格里拉县| 鹤山市| 焦作市| 吴川市| 鲜城| 华宁县| 金华市| 自治县| 社旗县| 丰镇市| 奇台县| 鸡东县| 汶川县| 伊金霍洛旗| 东明县| 石家庄市| 佳木斯市| 吴川市| 兴化市| 衡阳县| 麦盖提县| 武功县| 榆社县| 多伦县| 渑池县| 轮台县| 三明市| 长葛市| 珲春市| 南江县|