JavaScript中怎么實(shí)現(xiàn)冒泡排序和選擇排序

本篇文章為大家展示了JavaScript中怎么實(shí)現(xiàn)冒泡排序和選擇排序,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)薩嘎,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792

算法說(shuō)明

算法(Algorithm)是解決問(wèn)題的一種策略機(jī)制,算法也是有限操作指令的集合。按照算法策略輸入符合要求的數(shù)據(jù),最終獲得解決問(wèn)題的輸出結(jié)果。冒泡算法與選擇算法主要用于實(shí)現(xiàn)對(duì)無(wú)序的數(shù)字集合進(jìn)行排序。算法描述分別如下:

1、冒泡排序算法

冒泡算法顧名思義,可以將待排序序列中的每一個(gè)元素看成一個(gè)個(gè)氣泡,假設(shè)氣泡的大小用元素的數(shù)值表示,這樣的話最大氣泡(最大的元素?cái)?shù)字)會(huì)最先升起來(lái),這一過(guò)程即為冒泡。冒泡算法的關(guān)鍵在于將未排序部分最大元素依次后移動(dòng),在序列尾端從小到大形成排序好的有序序列。冒泡排序示意如下圖所示:

JavaScript中怎么實(shí)現(xiàn)冒泡排序和選擇排序

冒泡排序算法示意圖

冒泡排序算法示意圖如上圖所示,其中每一行表示一次排序,排序目的找到最大值,從待排序序列中取出最大值,放到紅色小球區(qū)域中,紅色小球區(qū)域表示已完成排序的序列。通過(guò)上圖我們可以看出,每趟排序冒泡出來(lái)的元素分別為(17,12,9,5,1)。最終排好的序列為(1,5,9,12,17)。

2、選擇排序算法

選擇排序是指從未排序的序列中找到最小的值并取出放到已經(jīng)排好順序的序列中,一直到未排序序列中的元素個(gè)數(shù)為零。即所有的元素都放到已經(jīng)排好順序的序列中。該算法的關(guān)鍵在于從未排序的序列中找到最輕(數(shù)值最?。┰兀诺揭呀?jīng)排序好的序列中。選擇排序算法示意如下圖所示:

JavaScript中怎么實(shí)現(xiàn)冒泡排序和選擇排序
選擇排序示意圖

選擇排序示意圖如上圖所示,選擇的關(guān)鍵在于找到最小的值,并將其放到已經(jīng)排序好的序列中。上圖中未排序(待排序)集合為黃色部分,排序好的部分為綠色背景部分,每一行為一次排序,排序目的找到最小元素。通過(guò)上圖可知選擇出來(lái)的最小值依次為(1,5,9,12,17)。

冒泡排序?qū)崿F(xiàn)

JavaScript冒泡排序主要借助JavaScript array數(shù)字對(duì)象實(shí)現(xiàn)待排序序列的存儲(chǔ),通過(guò)循環(huán)語(yǔ)句遍歷數(shù)組,從待排序序列的第一個(gè)元素開(kāi)始與后面元素比較,如大于后面元素則交換,因此經(jīng)過(guò)一趟遍歷,最大元素將會(huì)跑到array數(shù)組的末尾。實(shí)現(xiàn)代碼描述如下:

 var arr1=[9,1,4,13,7,8,20,23,15]; 
 var wlen1=arr1.length;
 var count1=0;//記錄總執(zhí)行次數(shù) 
 for(var i=0;i<arr1.length-1;i++) { 
 for(var j=0;j<wlen1;j++) { 
 if(arr1[j]>arr1[j+1]) { 
 var temp; 
 temp=arr1[j]; 
 arr1[j]=arr1[j+1]; 
 arr1[j+1]=temp; 
 count1++; 
 } 
 } 
 wlen1=wlen1-1; 
 }

選擇排序?qū)崿F(xiàn)

按照算法描述選擇排序需要使用兩個(gè)JavaScript數(shù)組對(duì)象,一個(gè)為待排序序列存儲(chǔ)數(shù)據(jù),一個(gè)為排序完成數(shù)組。分別從待排序序列數(shù)組中找到最小值并取出存儲(chǔ)到完成排序數(shù)組中。arr數(shù)組為待排序數(shù)組,res數(shù)組為排序完成數(shù)組。使用javaScript實(shí)現(xiàn)選擇排序代碼描述如下:

 var arr=[9,1,4,13,7,8,20,23,15]; 
 var wlen=arr.length; 
 var count=0;//記錄已完成排序元素?cái)?shù)量 
 var res=[];//最終排序結(jié)果數(shù)組 
 var minvalue=0; //思路從未排序序列選擇最小元素放到已經(jīng)完成排序的數(shù)組中 
 for(var i=0;i<wlen;i++) { //找到最小元素 
 minvalue=arr[0]; 
 for(var j=0;j<arr.length;j++) { 
 if(minvalue>arr[j]) { 
 minvalue=arr[j]; 
 var temp; 
 temp=arr[0]; 
 arr[0]=arr[j]; 
 arr[j]=temp; 
 } 
 count++; 
 } 
 arr.shift(); 
 res[i]=minvalue; 
 }

上述內(nèi)容就是JavaScript中怎么實(shí)現(xiàn)冒泡排序和選擇排序,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

新聞名稱:JavaScript中怎么實(shí)現(xiàn)冒泡排序和選擇排序
本文地址:http://muchs.cn/article12/pdgegc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、品牌網(wǎng)站制作、虛擬主機(jī)、網(wǎng)站制作、云服務(wù)器、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化