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

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

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

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

         先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再從剩余未排序元素中繼續(xù)尋找最小(大)元素,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

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

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

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

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

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

3)javascript代碼實現(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)

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

相關(guān)文章

  • javascript使用activex控件的代碼

    javascript使用activex控件的代碼

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

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

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

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

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

    js里面的變量范圍分享

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

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

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

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

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

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

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

    理解JavaScript的caller,callee,call,apply

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

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

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

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

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

最新評論