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

首頁 > 開發(fā) > JS > 正文

JS排序算法之冒泡排序,選擇排序與插入排序實例分析

2024-05-06 16:41:21
字體:
來源:轉載
供稿:網(wǎng)友

本文實例講述了JS排序算法之冒泡排序,選擇排序與插入排序。分享給大家供大家參考,具體如下:

冒泡排序:

對數(shù)組的中的數(shù)據(jù),依次比較相鄰兩數(shù)的大小。

如果前面的數(shù)據(jù)大于后面的數(shù)據(jù),就交換這兩個數(shù)。

時間復雜度O(n^2)

function bubble(array){ var temp; for(var i=0; i<arr.length; i++){  for(var j=0; j<arr.length; j++){   if(arr[j]>arr[j+1]){    temp = arr[j+1];    arr[j+1] =arr[j];    arr[j]=temp;   }  }console.log(arr); }}//冒泡排序

選擇排序:

首先從原始數(shù)組中選擇一個最小的數(shù)據(jù),和第一個位置1的數(shù)據(jù)交換。

再從剩下的n-1個數(shù)據(jù)中選擇次小的數(shù)據(jù),將其和第二個位置的數(shù)據(jù)交換。

不斷重復,知道最后兩個數(shù)據(jù)完成交換。

時間復雜度O(n^2)

function selectionSort(array){ var min,temp; for(var i=0; i<array.length-1; i++){  min=i;  for(var j=i+1; j<array.length; j++){   if(array[j]<array[min]){    min=j;   }  }  swap(array,min,i); } console.log(array);}//選擇排序function swap(array,i,j){ var temp =array[i]; array[i]=array[j]; array[j]=temp;}//兩個數(shù)字交換

插入排序:

首先對前兩個數(shù)據(jù)從小到大比較。

接著將第三個數(shù)據(jù)與排好的前兩個數(shù)據(jù)比較,將第三個數(shù)據(jù)插入合適的位置。以此類推。

(插入排序有兩個循環(huán),外循環(huán)將數(shù)組挨個移動,內循環(huán)將對外循環(huán)選中的元素及他前面的數(shù)進行比較。)

時間復雜度O(n^2)

function insertSort(arr){ var temp, j; for(var i=1; i<arr.length; i++){  temp =arr[i];  j=i;  while(j>0 && arr[j-1]>temp){   arr[j]=arr[j-1];   j--;  }  arr[j]=temp; }}

希望本文所述對大家JavaScript程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宣汉县| 油尖旺区| 余姚市| 林周县| 巴楚县| 和龙市| 天全县| 天津市| 钟祥市| 尖扎县| 宜章县| 山阳县| 岫岩| 松原市| 南宁市| 金川县| 永善县| 大关县| 宿州市| 利川市| 汾西县| 南溪县| 额济纳旗| 海口市| 东港市| 台前县| 兴义市| 泰顺县| 灵川县| 普兰县| 望都县| 海伦市| 南召县| 泰宁县| 南汇区| 和静县| 马龙县| 萍乡市| 邯郸市| 双峰县| 陇川县|