熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Javascript >> 正文

java api混排算法

2013-11-23 17:57:56  來源: Javascript 

  混排(Shuffling)
  
    混排算法所做的正好與 sort 相反: 它打亂在一個 List 中可能有的任何排列的蹤跡也就是說基於隨機源的輸入重排該 List 這樣的排列具有相同的可能性(假設隨機源是公正的)這個算法在實現一個碰運氣的游戲中是非常有用的例如它可被用來混排代表一副牌的 Card 對象的一個 List 另外在生成測試案例時它也是十分有用的
    這個操作有兩種形式第一種只采用一個 List 並使用默認隨機源第二種要求調用者提供一個 Random 對象作為隨機源這個算法的一些實際代碼曾在 List 課程中被作為例子使用
    常規數據操作(Routine Data Manipulation)
    Collections 類為在 List 對象上的常規數據操作提供了三種算法這些算法是十分簡單明了的:
    reverse: 反轉在一個列表中的元素的順序
    fill: 用特定值覆蓋在一個 List 中的每一個元素這個操作對初始化一個 List 是十分有用的
    copy: 用兩個參數一個目標 List 和一個源 List 將源的元素拷貝到目標並覆蓋它的內容目標 List 至少與源一樣長如果它更長則在目標 List 中的剩余元素不受影響
    搜索(Searching)
    binary search (二進制搜索)算法用二進制搜索算法在一個已排序的 List 中尋找特定元素這個算法有兩種形式第一種采用一個 List 和一個要尋找的元素 ( 搜索鍵(search key))這種形式假設 List 是按照它的元素的自然排序排列成上升順序的第二種形式除采用 List 外還采用一個 Comparator 以及搜索鍵並假設 List 是按照特定 Comparator 排列成上升順序的 排序算法(描述見上) 可優先於 binarySearch 而被用來為List 排序
    兩種形式的返回值是相同的: 如果 List 包含搜索鍵它的索引將被返回如果不包括則返回值為 ((insertion point) ) 這裡的 insertion point 被定義為一個點從這個點該值將被插入到這個 List 中大於該值的第一個元素的位置索引或listsize() 選用這個不可否認的難看的公式是為了保證如果且僅如果搜索鍵被發現則返回值將等於它基本上是一個將布爾邏輯 (found) 和整數 (index) 綜合到單一的int返回值的大雜燴
    下列慣用程序對 binarySearch 操作的兩種形式均適用它尋找特定搜索鍵如果搜索鍵不出現則將它插入到適當的位置:
  int pos = CollectionsbinarySearch(l key);
  if (pos < 0)
  l.add(-pos-1, key);
    尋找極值(Finding Extreme Values)
    min 和 max 算法分別返回包含在特定 Collection 中的最小和最大元素。Tw.wInGwIT.COm這兩個操作都各有兩種形式,簡單形式只采用一個 Collection, 並按照元素的自然排序返回最小 (或最大) 元素;另一種形式除采用 Collection 之外,還采用一個 Comparator,並按照特定 Comparator返回最小(或最大)元素。
    這些就是由Java 平台提供的作用於與 List 對象相對的任意 Collection 對象上的僅有算法,就象上面提到的 fill 算法一樣,這些算法都是非常簡單明了的,它們是Java平台為程序員特別提供的便利工具。
  
  
  
  

From:http://tw.wingwit.com/Article/program/Java/Javascript/201311/25443.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.