欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript算法學習之冒泡排序和選擇排序

 更新時間:2019年11月02日 11:46:50   作者:kid編程  
這篇文章主要給大家介紹了關于JavaScript算法學習之冒泡排序和選擇排序的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用JavaScript具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

算法與數據結構構成了程序,數據結構用于實現數據的表示、存儲、管理,算法通過使用數據完成一定的業(yè)務邏輯與操作,最終實現了程序的功能。因此算法在編程中的重要性是不言而喻的。很多復雜的算法都是借助最基本的算法實現的。本文主要選取經典排序算法中的冒泡排序與選擇排序對JavaScript編程實現算法進行簡單描述與說明。

程序算法

算法說明

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

1、冒泡排序算法

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


冒泡排序算法示意圖

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

2、選擇排序算法

選擇排序是指從未排序的序列中找到最小的值并取出放到已經排好順序的序列中,一直到未排序序列中的元素個數為零。即所有的元素都放到已經排好順序的序列中。該算法的關鍵在于從未排序的序列中找到最輕(數值最?。┰?,放到已經排序好的序列中。選擇排序算法示意如下圖所示:


選擇排序示意圖

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

冒泡排序實現

JavaScript冒泡排序主要借助JavaScript array數字對象實現待排序序列的存儲,通過循環(huán)語句遍歷數組,從待排序序列的第一個元素開始與后面元素比較,如大于后面元素則交換,因此經過一趟遍歷,最大元素將會跑到array數組的末尾。實現代碼描述如下:

 var arr1=[9,1,4,13,7,8,20,23,15]; 
 var wlen1=arr1.length;
 var count1=0;//記錄總執(zhí)行次數 
 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; 
 }

選擇排序實現

按照算法描述選擇排序需要使用兩個JavaScript數組對象,一個為待排序序列存儲數據,一個為排序完成數組。分別從待排序序列數組中找到最小值并取出存儲到完成排序數組中。arr數組為待排序數組,res數組為排序完成數組。使用javaScript實現選擇排序代碼描述如下:

 var arr=[9,1,4,13,7,8,20,23,15]; 
 var wlen=arr.length; 
 var count=0;//記錄已完成排序元素數量 
 var res=[];//最終排序結果數組 
 var minvalue=0; //思路從未排序序列選擇最小元素放到已經完成排序的數組中 
 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; 
 }

JavaScript實現基本冒泡與選擇排序算法描述如上所示,本例設計測試用例為(9,1,4,13,7,8,20,23,15),該待排序測試用例分別執(zhí)行冒泡排序與選擇排序,效果展示如下圖

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

相關文章

  • javascript判斷非數字的簡單例子

    javascript判斷非數字的簡單例子

    這篇文章介紹了javascript判斷非數字的簡單例子,有需要的朋友可以參考一下
    2013-07-07
  • js實現公告自動滾動

    js實現公告自動滾動

    這篇文章主要為大家詳細介紹了js實現公告自動滾動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 微信小程序日期選擇器實例代碼

    微信小程序日期選擇器實例代碼

    本文通過一段實例代碼給大家介紹了微信小程序日期選擇器的實現思路,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-07-07
  • 微信小程序實現上拉加載功能

    微信小程序實現上拉加載功能

    這篇文章主要為大家詳細介紹了微信小程序實現上拉加載功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • js 利用className得到對象的實現代碼

    js 利用className得到對象的實現代碼

    利用className得到對象的實現代碼,大家可以看下代碼的實現原理。
    2011-11-11
  • 淺談js script標簽中的預解析

    淺談js script標簽中的預解析

    本文主要對js中script標簽中的預解析進行詳細介紹。具有一定的參考價值,下面跟著小編一起來看下吧
    2016-12-12
  • BootStrap 動態(tài)表單效果

    BootStrap 動態(tài)表單效果

    這篇文章主要介紹了BootStrap 動態(tài)表單效果,實現代碼分為js部分和html部分,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-06-06
  • JavaScript高級?ES7-ES13?新特性詳解

    JavaScript高級?ES7-ES13?新特性詳解

    這篇文章主要介紹了JavaScript高級?ES7-ES13?新特性詳解,本文結合實例代碼給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • JS逆向之愛奇藝滑塊加密的實現

    JS逆向之愛奇藝滑塊加密的實現

    本文主要介紹了JS逆向之愛奇藝滑塊加密的實現,文中根據實例編碼詳細介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Js實現累加上漂浮動畫示例

    Js實現累加上漂浮動畫示例

    這篇文章主要為大家介紹了Js實現累加上漂浮動畫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11

最新評論