隨筆 - 4, 文章 - 0, 評論 - 2, 引用 - 0

          導航

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          鏈接

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          我的評論

          @thebye85
          i++是非原子操作,你只能通過其他手段來保證咯
          @thebye85
          應該是操作棧吧
          re: Scala 的快速排序 Johnny Jian 2009-08-14 22:44  
          @Net4J
          贊成
          同樣的程序用Groovy寫:
          def sort(xs) {
          if (xs.size() <= 1)
          xs
          else {
          def pivot = xs[xs.size() / 2 as int]
          sort(xs.findAll { it < pivot }) +
          xs.findAll { it == pivot } +
          sort(xs.findAll { it > pivot })
          }
          }
          def array = [123, 343, 5435, 23, 3213]
          println array
          array = sort(array)
          println array

          或者用groupBy方法:
          def sort(xs) {
          if (!xs)
          []
          else {
          def pivot = xs[xs.size() / 2 as int]
          def m = xs.groupBy { it <=> pivot }
          sort(m[-1]) + m[0] + sort(m[1])
          }
          }
          def array = [123, 343, 5435, 23, 3213]
          println array
          array = sort(array)
          println array
          re: Scala 的快速排序 Johnny Jian 2009-08-13 10:19  
          Console.println("排序前的結果");
          arrays.foreach((array: Int ) => println(array))

          =>

          println("排序前的結果")
          arrays.foreach(println)
          @山風小子
          補充一個call的優點:與dump這個變量是松耦合的
          def dump = { ... ->
          ...
          call(...)
          ...
          }
          def closure = dump
          dump = anotherClosure // 即使dump被賦為另外一個閉包也不會影響原來的閉包
          @山風小子

          各有什么利弊?可以分析一下嗎?謝謝^_^
          def dump
          dump = { File context, int depth, Stack levels ->
          ...
          dump(file, depth, levels)
          ...
          }
          不是可以寫成
          def dump = { File context, int depth, Stack levels ->
          ...
          call(file, depth, levels)
          ...
          }
          嗎?我在博客里也有寫過:http://johnnyjian.javaeye.com/blog/260028
          re: 關于for里面使用變量對性能的影響 Johnny Jian 2009-03-27 12:31  
          這樣的測試很有問題,因為JVM都還沒有warmup夠
          建議你看看這篇文章:http://www.ibm.com/developerworks/cn/java/j-benchmark1.html?ca=drs-cn-0709
          主站蜘蛛池模板: 马龙县| 溧阳市| 九寨沟县| 咸宁市| 湛江市| 商水县| 塔城市| 闽侯县| 大厂| 定南县| 称多县| 台东县| 东乡| 政和县| 广宗县| 宣汉县| 盘山县| 太和县| 商城县| 杭州市| 涡阳县| 若尔盖县| 绥江县| 开封市| 临朐县| 桃园市| 宣汉县| 锦州市| 焉耆| 名山县| 固阳县| 定南县| 边坝县| 曲周县| 霍林郭勒市| 金坛市| 永嘉县| 土默特左旗| 威信县| 永德县| 宜宾县|