摘要:冒泡排序可謂是最經(jīng)典的排序算法了,它是基于比較的排序算法,其優(yōu)點(diǎn)是實(shí)現(xiàn)簡單,排序數(shù)量較小時(shí)性能較好。也可以實(shí)現(xiàn)大數(shù)放在前面,小數(shù)放在后面,如果前面的數(shù)據(jù)比后面的小,就交換兩個(gè)的位置。要實(shí)現(xiàn)上述規(guī)則需要用到兩層循環(huán)。
冒泡排序可謂是最經(jīng)典的排序算法了,它是基于比較的排序算法,其優(yōu)點(diǎn)是實(shí)現(xiàn)簡單,排序數(shù)量較小時(shí)性能較好。
算法原理相鄰的數(shù)據(jù)進(jìn)行兩兩比較,小數(shù)放在前面,大數(shù)放在后面,如果前面的數(shù)據(jù)比后面的數(shù)據(jù)大,就交換這兩個(gè)數(shù)的位置。也可以實(shí)現(xiàn)大數(shù)放在前面,小數(shù)放在后面,如果前面的數(shù)據(jù)比后面的小,就交換兩個(gè)的位置。要實(shí)現(xiàn)上述規(guī)則需要用到兩層for循環(huán)。
冒泡實(shí)現(xiàn)數(shù)組從小到大排序
var arr=[2,7,1,8,6,4,3,5,9]; function mintomax(par){ var length=par.length; for(var i=0; ipar[j+1]){ var temp=par[j+1]; par[j+1]=par[j]; par[j]=temp; } } } return par; } console.log(mintomax(arr));
冒泡實(shí)現(xiàn)數(shù)組從大到小排序
var arr=[2,7,1,8,6,4,3,5,9]; function maxtomin(par){ var length=par.length; for(var i=0; i用es6結(jié)構(gòu)賦值的方式重寫上面代碼
var arr=[2,7,1,8,6,4,3,5,9]; function mintomax(par){ var length=par.length; for(var i=0; ipar[j+1]){ [par[j],par[j+1]]=[par[j+1],par[j]] } } } return par; } console.log(mintomax(arr)); function maxtomin(par){ var length=par.length; for(var i=0; i 按照父子平鋪順序排序
var data = [{ ZDXM_STDCODE: "100101", ZDXM_STDNAME: "", FINA_YYSR: "", FINA_PGZHSY: "", FINA_SJZHSY: "", FINA_PGZHSYL: "", FINA_SJZHSYL: "", FINA_ZHSYLCE: "", FINA_SRJJL: "", FINA_JSSKL: "", FINA_HTE: "", GLZDXM: "1001", }, { ZDXM_STDCODE: "1001", ZDXM_STDNAME: "", FINA_YYSR: "", FINA_PGZHSY: "", FINA_SJZHSY: "", FINA_PGZHSYL: "", FINA_SJZHSYL: "", FINA_ZHSYLCE: "", FINA_SRJJL: "", FINA_JSSKL: "", FINA_HTE: "", GLZDXM: "", }, { ZDXM_STDCODE: "100102", ZDXM_STDNAME: "", FINA_YYSR: "", FINA_PGZHSY: "", FINA_SJZHSY: "", FINA_PGZHSYL: "", FINA_SJZHSYL: "", FINA_ZHSYLCE: "", FINA_SRJJL: "", FINA_JSSKL: "", FINA_HTE: "", GLZDXM: "1001", }, { ZDXM_STDCODE: "100201", ZDXM_STDNAME: "", FINA_YYSR: "", FINA_PGZHSY: "", FINA_SJZHSY: "", FINA_PGZHSYL: "", FINA_SJZHSYL: "", FINA_ZHSYLCE: "", FINA_SRJJL: "", FINA_JSSKL: "", FINA_HTE: "", GLZDXM: "1002", }, { ZDXM_STDCODE: "1002", ZDXM_STDNAME: "", FINA_YYSR: "", FINA_PGZHSY: "", FINA_SJZHSY: "", FINA_PGZHSYL: "", FINA_SJZHSYL: "", FINA_ZHSYLCE: "", FINA_SRJJL: "", FINA_JSSKL: "", FINA_HTE: "", GLZDXM: "", }, { ZDXM_STDCODE: "100202", ZDXM_STDNAME: "", FINA_YYSR: "", FINA_PGZHSY: "", FINA_SJZHSY: "", FINA_PGZHSYL: "", FINA_SJZHSYL: "", FINA_ZHSYLCE: "", FINA_SRJJL: "", FINA_JSSKL: "", FINA_HTE: "", GLZDXM: "1002", }, ] function datatotree(par) { var length = par.length; for (var i = 0; i < length-1; i++) { for (var j = 0; j < length - i - 1; j++) { var str1=par[j].GLZDXM+par[j].ZDXM_STDCODE; var str2=par[j+1].GLZDXM+par[j+1].ZDXM_STDCODE; if(par[j].GLZDXM==null){ str1=par[j].ZDXM_STDCODE; } if(data[j+1].GLZDXM==null){ str2=par[j+1].ZDXM_STDCODE; } if (str1 > str2) { var temp = par[j + 1]; par[j + 1] = par[j] par[j] = temp; } } } return par; } var data = datatotree(data) console.log(data);按照es6結(jié)構(gòu)賦值重寫上面代碼
var data = [{ ZDXM_STDCODE: "100101", ZDXM_STDNAME: "", FINA_YYSR: "", FINA_PGZHSY: "", FINA_SJZHSY: "", FINA_PGZHSYL: "", FINA_SJZHSYL: "", FINA_ZHSYLCE: "", FINA_SRJJL: "", FINA_JSSKL: "", FINA_HTE: "", GLZDXM: "1001", }, { ZDXM_STDCODE: "1001", ZDXM_STDNAME: "", FINA_YYSR: "", FINA_PGZHSY: "", FINA_SJZHSY: "", FINA_PGZHSYL: "", FINA_SJZHSYL: "", FINA_ZHSYLCE: "", FINA_SRJJL: "", FINA_JSSKL: "", FINA_HTE: "", GLZDXM: "", }, { ZDXM_STDCODE: "100102", ZDXM_STDNAME: "", FINA_YYSR: "", FINA_PGZHSY: "", FINA_SJZHSY: "", FINA_PGZHSYL: "", FINA_SJZHSYL: "", FINA_ZHSYLCE: "", FINA_SRJJL: "", FINA_JSSKL: "", FINA_HTE: "", GLZDXM: "1001", }, { ZDXM_STDCODE: "100201", ZDXM_STDNAME: "", FINA_YYSR: "", FINA_PGZHSY: "", FINA_SJZHSY: "", FINA_PGZHSYL: "", FINA_SJZHSYL: "", FINA_ZHSYLCE: "", FINA_SRJJL: "", FINA_JSSKL: "", FINA_HTE: "", GLZDXM: "1002", }, { ZDXM_STDCODE: "1002", ZDXM_STDNAME: "", FINA_YYSR: "", FINA_PGZHSY: "", FINA_SJZHSY: "", FINA_PGZHSYL: "", FINA_SJZHSYL: "", FINA_ZHSYLCE: "", FINA_SRJJL: "", FINA_JSSKL: "", FINA_HTE: "", GLZDXM: "", }, { ZDXM_STDCODE: "100202", ZDXM_STDNAME: "", FINA_YYSR: "", FINA_PGZHSY: "", FINA_SJZHSY: "", FINA_PGZHSYL: "", FINA_SJZHSYL: "", FINA_ZHSYLCE: "", FINA_SRJJL: "", FINA_JSSKL: "", FINA_HTE: "", GLZDXM: "1002", }, ] function datatotree(par) { var length = par.length; for (var i = 0; i < length-1; i++) { for (var j = 0; j < length - i - 1; j++) { var str1=par[j].GLZDXM+par[j].ZDXM_STDCODE; var str2=par[j+1].GLZDXM+par[j+1].ZDXM_STDCODE; if(par[j].GLZDXM==null){ str1=par[j].ZDXM_STDCODE; } if(data[j+1].GLZDXM==null){ str2=par[j+1].ZDXM_STDCODE; } if (str1 > str2) { [par[j],par[j+1]]=[par[j+1],par[j]]; } } } return par; } var data = datatotree(data) console.log(data);上面代碼排序之后結(jié)果
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/108155.html
摘要:之所以把冒泡排序選擇排序插入排序放在一起比較,是因?yàn)樗鼈兊钠骄鶗r(shí)間復(fù)雜度都為。其中,冒泡排序就是原地排序算法。所以冒泡排序是穩(wěn)定的排序算法。選擇排序思路選擇排序算法的實(shí)現(xiàn)思路有點(diǎn)類似插入排序,也分已排序區(qū)間和未排序區(qū)間。 showImg(https://segmentfault.com/img/bVbuvnj?w=900&h=250); 1. 前言 算法為王。 想學(xué)好前端,先練好內(nèi)功,...
摘要:說明上次寫了實(shí)現(xiàn)冒泡排序,只是簡單的說了冒泡排序算法是什么,怎么實(shí)現(xiàn),這次來實(shí)現(xiàn)將冒泡排序的過程展現(xiàn)出來??偨Y(jié)上面的兩個(gè)版本的思路基本一樣,用一句話概括就是,記錄冒泡排序所有的改變,將這些改變一步一步的顯示出來。 說明 上次寫了 JavaScript實(shí)現(xiàn)冒泡排序 ,只是簡單的說了冒泡排序算法是什么,怎么實(shí)現(xiàn),這次來實(shí)現(xiàn)將冒泡排序的過程展現(xiàn)出來。 解釋 先來個(gè)簡單的版本,看效果圖 sh...
說明 對數(shù)組進(jìn)行 冒泡排序 算是比較簡單的,冒泡排序也是容易理解的一種排序算法了,在面試的時(shí)候,很可能就會(huì)問到。 實(shí)現(xiàn)原理 數(shù)組中有 n 個(gè)數(shù),比較每相鄰兩個(gè)數(shù),如果前者大于后者,就把兩個(gè)數(shù)交換位置;這樣一來,第一輪就可以選出一個(gè)最大的數(shù)放在最后面;那么經(jīng)過 n-1(數(shù)組的 length - 1) 輪,就完成了所有數(shù)的排序。 showImg(https://segmentfault.com/img...
摘要:實(shí)現(xiàn)快速排序介紹通過一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨(dú)立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小,然后再按此方法對這兩部分?jǐn)?shù)據(jù)分別進(jìn)行快速排序,整個(gè)排序過程可以遞歸進(jìn)行,以此達(dá)到整個(gè)數(shù)據(jù)變成有序序列。 冒泡排序 介紹 重復(fù)遍歷要排序的元素列,依次比較兩個(gè)相鄰的元素,前一個(gè)元素若比后一個(gè)元素大則互換位置。以升序排序?yàn)槔?,最大的元素?huì)在第一次遍歷后冒泡到數(shù)組的末端。假如數(shù)組...
摘要:不過說到排序,最容易想到的就是冒泡排序,選擇排序,插入排序了。一是影響太小,而是我們?nèi)说男蕟栴},一分鐘能從頭寫個(gè)冒泡選擇插入的排序方法,而換成是歸并排序呢原文發(fā)表在我的博客排序,不只是冒泡,歡迎訪問 非常非常推薦大家去讀一本gitBook上的書 - 十大經(jīng)典排序算法 : https://sort.hust.cc/ , 本文的動(dòng)圖和演示代碼均是這里面的。 做編程,排序是個(gè)必然的需求。前...
摘要:快速排序快速排序原始數(shù)組二分查找冒泡排序冒泡排序耗時(shí)冒泡排序耗時(shí)改進(jìn)后的冒泡排序耗時(shí)改進(jìn)后的冒泡排序耗時(shí)排序前冒泡排序后改進(jìn)的冒泡排序后選擇排序選擇排序耗時(shí)選擇排序耗時(shí)排序前排序后插入排序插入排序耗時(shí)插入排序耗時(shí)排序前排序后 快速排序 function quickSort(ary, isDesc) { var len = ary.length; if (len < 3)...
閱讀 1947·2021-11-25 09:43
閱讀 1441·2021-11-22 14:56
閱讀 3306·2021-11-22 09:34
閱讀 2050·2021-11-15 11:37
閱讀 2324·2021-09-01 10:46
閱讀 1428·2019-08-30 15:44
閱讀 2323·2019-08-30 13:15
閱讀 2418·2019-08-29 13:07