国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 徐水县| 仙游县| 泗水县| 禄丰县| 阿克苏市| 大同县| 蓬莱市| 依安县| 平乡县| 鹤庆县| 山丹县| 周宁县| 安吉县| 怀仁县| 金门县| 鹿泉市| 遂宁市| 南雄市| 汉寿县| 仙桃市| 家居| 宁安市| 兴义市| 澳门| 清河县| 进贤县| 长垣县| 修文县| 雷波县| 嫩江县| 栾城县| 广德县| 观塘区| 鄂州市| 辽阳县| 远安县| 花莲市| 桓仁| 苍南县| 密云县| 定襄县|