首页 > 技术文章 > Scala算法120801:插入排序

mundo 2015-12-08 14:07 原文

 1 package test
 2 import scala.util._
 3 /**
 4  * @author MUNDO
 5  */
 6 object SL1207_Sort {
 7   def main(args: Array[String]) {
 8     println("===> Sort:")
 9     var a = new Array[Int](10)
10     ArrayRandomAppend(a, 100)
11     ArrayPrint(a)
12     InsertSort(a)
13     println("\nAfter Sort:")
14     ArrayPrint(a)
15   }
16 
17   def ArrayPrint(a: Array[Int]) {
18     for (i <- 0 until a.length) {
19       print(a(i) + " ")
20     }
21   }
22 
23   def ArrayRandomAppend(a: Array[Int], max: Int) {
24     val ran = new Random()
25     (0 until a.length).foreach(
26       v => {
27         a(v) = ran.nextInt(max)
28       })
29   }
30 
31   def InsertSort(a: Array[Int]) {
32     var key = 0
33     var i = 0
34     for (j <- 1 until a.length) {
35       key = a(j)
36       i = j - 1
37       while (i > -1 && a(i) > key) {
38         a(i + 1) = a(i)
39         i = i - 1
40       }
41       a(i + 1) = key
42     }
43   }
44 }

结果:

 

推荐阅读