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

JavaScript實(shí)現(xiàn)經(jīng)典排序算法之選擇排序

 更新時(shí)間:2016年12月28日 08:44:24   作者:Wendy-lxq  
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)經(jīng)典排序算法之選擇排序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

表現(xiàn)最穩(wěn)定的排序算法之一,因?yàn)闊o(wú)論什么數(shù)據(jù)進(jìn)去都是O(n²)的時(shí)間復(fù)雜度.....所以用到它的時(shí)候,數(shù)據(jù)規(guī)模越小越好。唯一的好處可能就是不占用額外的內(nèi)存空間。
1)算法原理

         先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再?gòu)氖S辔磁判蛟刂欣^續(xù)尋找最?。ù螅┰?,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

2)算法描述和實(shí)現(xiàn)

       n個(gè)記錄的直接選擇排序可經(jīng)過(guò)n-1趟直接選擇排序得到有序結(jié)果。具體算法描述如下:

      <1>初始狀態(tài):無(wú)序區(qū)為R[1..n],有序區(qū)為空;

      <2>第i趟排序(i=1,2,3...n-1)開(kāi)始時(shí),當(dāng)前有序區(qū)和無(wú)序區(qū)分別為R[1..i-1]和R(i..n)。該趟排序從當(dāng)前無(wú)序區(qū)中-選出關(guān)鍵字最小的記錄 R[k],將它與無(wú)序區(qū)的第1個(gè)記錄R交換,使R[1..i]和R[i+1..n)分別變?yōu)橛涗泜€(gè)數(shù)增加1個(gè)的新有序區(qū)和記錄個(gè)數(shù)減少1個(gè)的新無(wú)序區(qū);

      <3>n-1趟結(jié)束,數(shù)組有序化了。

3)javascript代碼實(shí)現(xiàn)

function selectSort(arr){ 
 var len = arr.length; 
 var index,temp; 
 for(var i = 0; i < len-1 ;i++){ 
  index = i; 
  for(var j = i + 1 ; j<len; j++){ 
   if(arr[j] < arr[index]){//尋找最小的數(shù) 
    index = j;//保存最小數(shù)的索引 
   } 
  } 
  temp = arr[i]; 
  arr[i] = arr[index]; 
  arr[index] = temp; 
 } 
 return arr; 
} 
 
var arr=[1,45,37,5,48,15,37,26,29,2,46,4,17,50,52]; 
console.log(selectSort(arr)); 

4)算法分析

       最佳情況:T(n) = O(n2)
       最差情況:T(n) = O(n2)
      平均情況:T(n) = O(n2)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • javascript使用activex控件的代碼

    javascript使用activex控件的代碼

    最近公司項(xiàng)目用到了avtivex控件。以前從來(lái)沒(méi)有用過(guò)。我把最近到處找到的使用方法整理一下。
    2011-01-01
  • Python執(zhí)行js字符串常見(jiàn)方法示例

    Python執(zhí)行js字符串常見(jiàn)方法示例

    這篇文章主要為大家介紹了Python執(zhí)行js字符串常見(jiàn)方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • js 設(shè)置緩存及獲取設(shè)置的緩存

    js 設(shè)置緩存及獲取設(shè)置的緩存

    這篇文章主要介紹了js如何設(shè)置緩存及獲取設(shè)置的緩存,需要的朋友可以參考下
    2014-05-05
  • js里面的變量范圍分享

    js里面的變量范圍分享

    今天寫(xiě)一個(gè)滑動(dòng)自動(dòng)加載的功能的時(shí)候,遇到了切換就發(fā)現(xiàn)加載完畢的情況,查看了下發(fā)現(xiàn)可能是js的全局變量和局部變量的問(wèn)題,自己測(cè)試了下,果不其然,下面分享下
    2020-07-07
  • 微信小程序 MinUI組件庫(kù)系列之badge徽章組件示例

    微信小程序 MinUI組件庫(kù)系列之badge徽章組件示例

    這篇文章主要介紹了微信小程序 MinUI組件庫(kù)系列之badge徽章組件示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • JavaScript中的concat()方法的用法詳解

    JavaScript中的concat()方法的用法詳解

    在?JavaScript?中,數(shù)組和字符串都是常用的數(shù)據(jù)結(jié)構(gòu),在實(shí)際開(kāi)發(fā)中,操作數(shù)組和字符串是非常頻繁的任務(wù),concat()?方法就是用于合并數(shù)組或字符串的一種常見(jiàn)方法,在本文中,我們將詳細(xì)探討?concat()?方法的用法和示例,需要的朋友可以參考下
    2024-11-11
  • 從js向Action傳中文參數(shù)出現(xiàn)亂碼問(wèn)題的解決方法

    從js向Action傳中文參數(shù)出現(xiàn)亂碼問(wèn)題的解決方法

    Action獲取jsp表單中的中文參數(shù),只要整個(gè)項(xiàng)目都采用UTF-8編碼格式都不會(huì)出現(xiàn)亂碼問(wèn)題;但JSP中用到JS,并從JS向Action傳中文參數(shù),就會(huì)出現(xiàn)中文亂的現(xiàn)象
    2013-12-12
  • 理解JavaScript的caller,callee,call,apply

    理解JavaScript的caller,callee,call,apply

    文章挺好的,雖然我用的是jQuery,但感覺(jué)還是有些用的~~~
    2009-04-04
  • Django使用多數(shù)據(jù)庫(kù)的方法

    Django使用多數(shù)據(jù)庫(kù)的方法

    有些項(xiàng)目可能涉及到使用多個(gè)數(shù)據(jù)庫(kù)的情況,方法很簡(jiǎn)單。接下來(lái)通過(guò)本文給大家介紹Django使用多數(shù)據(jù)庫(kù)的方法,需要的朋友參考下吧
    2017-09-09
  • js實(shí)現(xiàn)的map方法示例代碼

    js實(shí)現(xiàn)的map方法示例代碼

    本文為大家介紹下使用js實(shí)現(xiàn)的map方法,具體示例如下,喜歡的朋友可以了解下
    2014-01-01

最新評(píng)論