Scala練習-直接插入排序

來源:互聯網
上載者:User

源碼
白話經典演算法系列之二 直接插入排序的三種實現

package day14/**  * Created by doctorq on 2017/6/26.  * 直接插入排序,首先以a[0]作為一個有序數組,然後依次插入a[1]~a[n-1]  */object StraightInsertionSort extends App {  /**    *    * 普通模式,時間複雜度O(n)    *    * @param list    * @return    */  def sortN2(list: Array[Int]): Array[Int] = {    val size = list.size    if (size <= 1) return list    //從小到大排序    for (i <- 1 until size) {      if (list(i) < list(i - 1)) {        var j = i        while (j >= 1 && list(j) < list(j - 1)) {          swap(list, j - 1, j)          j -= 1        }      }    }    list  }  /**    * 將left和right兩個位置的數互換    *    * @param list    * @param left    * @param right    */  def swap(list: Array[Int], left: Int, right: Int): Unit = {    val temp = list(left)    list(left) = list(right)    list(right) = temp  }  def printlnList(sortedHeap: Array[Int]): Unit = {    sortedHeap.foreach(item => print(s"$item "))    println("sorted!")  }  val list = Array(15, 4, 3, 23, 5, 6, 7, 34, 6, 7, 3, 5, 7, 8, 3, 4, 6, 8, 3, 5, 7)  printlnList(list.sorted)  printlnList(sortN2(list))}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.