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

首頁 > 語言 > JavaScript > 正文

JS排序算法之冒泡排序,選擇排序與插入排序?qū)嵗治?/h1>
2024-05-06 15:23:38
字體:
供稿:網(wǎng)友

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

冒泡排序: 

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

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

時(shí)間復(fù)雜度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ù)組中選擇一個(gè)最小的數(shù)據(jù),和第一個(gè)位置1的數(shù)據(jù)交換。

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

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

時(shí)間復(fù)雜度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;}//兩個(gè)數(shù)字交換

插入排序:

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

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

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

時(shí)間復(fù)雜度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; }}

PS:這里再為大家推薦一款關(guān)于排序的演示工具供大家參考:

在線動(dòng)畫演示插入/選擇/冒泡/歸并/希爾/快速排序算法過程工具:
http://tools.Vevb.com/aideddesign/paixu_ys

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

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

圖片精選

主站蜘蛛池模板: 宁乡县| 运城市| 南郑县| 平塘县| 新巴尔虎右旗| 乌海市| 宝鸡市| 偏关县| 大田县| 东山县| 张家口市| 来宾市| 定西市| 寿光市| 南和县| 鄂伦春自治旗| 临桂县| 牡丹江市| 石阡县| 息烽县| 莲花县| 武功县| 文水县| 长治县| 宁国市| 巫山县| 星座| 芮城县| 靖边县| 孟村| 红河县| 社会| 阳春市| 崇州市| 邮箱| 黔江区| 凌云县| 桐梓县| 溆浦县| 天镇县| 称多县|