亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Swift實(shí)現(xiàn)Selection Sort選擇排序算法的實(shí)例講解

 更新時(shí)間:2016年07月06日 12:18:29   作者:Panl  
選擇排序是一種穩(wěn)定的排序算法,且實(shí)現(xiàn)代碼通常比冒泡排序要來的簡(jiǎn)單,這里我們就來看一下Swift實(shí)現(xiàn)Selection Sort選擇排序的實(shí)例講解

選擇排序Selection Sort是一種和插入排序Insertion Sort類似的排序方法,它同樣只適用于對(duì)規(guī)模不大的集合進(jìn)行排序。它的核心思想是,在序列內(nèi)部,把序列邏輯上分成已排序和未排序兩部分,不斷找到未排序部分中最符合排序規(guī)則的元素,添加進(jìn)已排序部分,直到序列中所有元素都已經(jīng)添加到了已排序部分,此時(shí),整個(gè)序列就排序完成了。
冒泡排序是兩兩比較不斷交換來實(shí)現(xiàn)排序,所以比較繁瑣。
而選擇排序  則是先選擇要交換的那個(gè)數(shù),才去交換。這樣就可以省去很多不必要的步驟。

Swift版實(shí)現(xiàn)示例:

func selectSort(var arr: [Int]) ->[Int] {
 var min = 0

 // 只需要n-1趟
 for var i = 0; i < arr.count - 1; ++i {
  min = i

  // 從第n+1趟起始找到末尾
  for var j = i + 1; j < arr.count; ++j {

   // 找到比min位置更小的,就更新這一趟所找到的最小值的位置
   if arr[j] < arr[min] {
    min = j
   }
  }

  // 如果min與i不相等,說明有比i位置更小的,所以需要交換
  if min != i {
   let temp = arr[i]
   arr[i] = arr[min]
   arr[min] = temp
  }
 }

 return arr
}

相關(guān)文章

最新評(píng)論