程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java排序算法總結之選擇排序

Java排序算法總結之選擇排序

編輯:關於JAVA

Java排序算法總結之選擇排序。本站提示廣大學習愛好者:(Java排序算法總結之選擇排序)文章只能為提供參考,不一定能成為您想要的結果。以下是Java排序算法總結之選擇排序正文


1、數字
  1. Ruby支撐整數和浮點數,整數可所以隨意率性長度
  2. 必定規模內的整數以二進制寄存,它們屬於fixnum類型,當超越這個規模時則主動轉換為bignum類型
  3. 表達方法:符號+一串字符,數字串中的下劃線會被疏忽,(前綴包含:0表現八進制, 0x表現十六進制, 0b表現二進制)123_456_789_123_345_789 # Bignum
    0xaabb # 十六進制
  4. 也能夠經由過程在後面加上問號來獲得ASCII碼字符對應的整數值和本義序列的值
    ?a # 通俗字符
    ?\n # 換行符 (0x0a)
    ?\C-a # CTRL+a (0x01)
    ?\M-a # ALT+a
    ?\M-\C-a # CTRL+ALT+a
    ?\C-? # 刪除鍵
  5. 一個帶小數點的數字字面值被轉換成Float對象
  6. 一切的數字都是對象,不存在響應的函數而是辦法
    exp:
    數字的相對值是aNumber.abs而不是abs(aNumber)
  7. 整數有效的迭代器
    3.times { print "X " } => X X X 1.upto(5) { |i| print i, " " } =>1 2 3 4 5 99.downto(95) { |i| print i, " " }=>99 98 97 96 95 50.step(80, 5) { |i| print i, " " }=>50 55 60 65 70 75 80
2、字符串
  1. Ruby的字符串是8位字節的簡略序列,字符串是String類的對象
  2. 留意轉換機制(留意單引號與雙引號的差別),如:
    單引號中兩個相連的反斜線被調換成一個反斜線,,一個反斜線後跟一個單引號被調換成一個單引號
    'escape using "\\"' >> 本義為"\" 'That\'s right' >> That's right
  3. 雙引號支撐多義的本義
    "\n"
    #{expr}序列來替換任何的Ruby表達式的值 ,(全局變量、類變量或許實例變量,那末可以省略年夜括號)
    "Seconds/day: #{24*60*60}" >> Seconds/day: 86400 "#{'Ho! '*3}Merry Christmas" >> Ho! Ho! Ho! Merry Christmas "This is line #$." >> This is line 3
  4. here document來創立一個字符串,end_of_string 為停止符號
    aString = <<END_OF_STRING The body of the string is the input lines up to one ending with the same text that followed the '<<' END_OF_STRING
  5. %q和%Q分離把字符串分隔成單引號和雙引號字符串(即%q與%Q前面的符號具有',"的功效)
    %q/general single-quoted string/ >> general single-quoted string
  6. String 經常使用功效
    String#split:把行分化成字段
    String#chomp:去失落換行符
    String#squeeze:剪除被反復輸出的字符
    String#scan:以指定想讓塊婚配的形式
    exp:
    /jazz/j00132.mp3 | 3:45 | Fats Waller | Ain't Misbehavin'
    /jazz/j00319.mp3 | 2:58 | Louis Armstrong | Wonderful World
    #文件格局如上,要停止分化
    songs = SongList.new
    songFile.each do |line|
    file, length, name, title = line.chomp.split(/\s*\|\s*/)#先chomp,後再分化,/\s*表現任字符
    name.squeeze!(" ")#調換空格
    mins, secs = length.scan(/\d+/)#這裡用scan婚配形式
    songs.append Song.new(title, name, mins.to_i*60+secs.to_i)
    end
3、區間
  1. 區間存在於任何處所,如:1到12月。ruby用區間完成了3個分歧的特征:序列,前提,距離。
  2. "..":兩個點號創立一個閉區間,"...":而三個點號創立一個右開區間(即左邊界不取值)
    exp:0..anArray.length-1 同等於 0...anArray.length
  3. to_a 把區間轉換成列表
    exp: ('bar'..'bat').to_a >> ["bar", "bas", "bat"]
  4. 區間的共它的用法
    digits = 0..9
    digits.include?(5) >> true
    digits.min >> 0
    digits.max >> 9
    digits.reject {|i| i < 5 } >> [5, 6, 7, 8, 9]
    digits.each do |digit|
    dial(digit)
    end
  5. ruby能把基於本身界說的對象的區間,請求:這個對象必需可以或許呼應succ辦法來前往序列中的下一個對象,而且這個對象必需可以或許應用<=>運算符來被比擬,即慣例的比擬運算符,
  6. 距離測試
    puts (1..10).include?(3.14)=> ture
    puts (1..10) === 3.14 => ture
4、正則表達式
  1. 正則表達式是Regexp類型的對象,可使用結構器顯式地創立一個正則表達式,也能夠應用字面值情勢/pattern/和%r\pattern\來創立
  2. 用Regxp#match(aString)的情勢或許婚配運算符=~(正婚配)和!~(負婚配)來婚配字符串了。婚配運算符在String和Regexp中都有界說,假如兩個操作數都是字符串,則左邊的誰人要被轉換成正則表達式
    exp:
    a = "Fats Waller"
    a =~ /a/ >> 1
    a =~ /z/ >> nil
    a =~ "ll" >> 7
  3. 下面前往的是婚配字符的地位,其它
    $&接收被形式婚配到的字符串部門
    $`接收婚配之前的字符串部門
    $'接收以後的字符串。
    exp:上面的辦法後繼都邑用到
    def showRE(a,re)
    if a =~ re
    "#{$`}<<#{$&}>>#{$'}" #前往前、中、後
    else
    "no match"
    end
    end
  4. 形式,任何一個表達式都包括一個形式,它用來把正則表達式和字任串婚配
    形式中除., |, (, ), [, {, +, \, ^, $, *,和?之外的字任都婚配它本身
    假如要婚配這些特別的字符就須要加上反斜線做前綴,剖析下面例字
    /\s*\|\s*/,在\s與|之前都加了/做前綴。
    showRE('kangaroo', /angar/) >> k<<angar>>oo
    showRE('!@%&-_=+', /%&/) >> !@<<%&>>-_=+
    showRE('yes | no', /\|/) >> yes <<|>> no
  5. \後跟一個字母或數字表現一個特定的構造如\s表現字符等。
  6. 錨點 一個正則表達式老是前往找到形式的第一個婚配,若何轉變?
    形式^和$分離用來婚配行首和行尾
    序列\A婚配字符串開端的地位,\z和\Z婚配字符串開頭的地位
    \b和\B分離婚配字界限和非字界限
    showRE("this is\nthe time", /^the/) >> this is\n<<the>> time
    showRE("this is\nthe time", /is$/) >> this <<is>>\nthe time
    showRE("this is\nthe time", /\Athis/) >> <<this>> is\nthe time

5、字符類

  1. 這裡的字符類不是面向對象的類,只表現這些這字符屬於一個特別的品種
  2. 字符類是用方括號擴起來的字符的聚集:[characters]婚配方括號中的一切單字符。[aeiou]婚配元音,[,.:'!?]婚配標點符號等等
    showRE('It costs $12.', /[aeiou]/) >> It c<<o>>sts $12.
  3. 在方括號中的序列c1-c2表現在c1-c2之間也包含c1和c2的一切字符
    a = 'Gamma [Design Patterns-page 123]'
    showRE(a, /[]]/) >> Gamma [Design Patterns-page 123<<]>>
    showRE(a, /[B-F]/) >> Gamma [<<D>>esign Patterns-page 123]
    showRE(a, /[-]/) >> Gamma [Design Patterns<<->>page 123]
    showRE(a, /[0-9]/) >> Gamma [Design Patterns-page <<1>>23]
  4. 緊跟在開括號([)後的是字符^,這表現這個字符類的否認:[^a-z]婚配任何不是小寫字母的字符。
  5. 字符類縮寫
    序列 形如 [ ... ] 寄義
    \d [0-9] Digit character
    \D [^0-9] Nondigit
    \s [\s\t\r\n\f] Whitespace character 婚配一個單空白符
    \S [^\s\t\r\n\f] Nonwhitespace character
    \w [A-Za-z0-9_] Word character
    \W [^A-Za-z0-9_] Nonword character
  6. 反復
    r * 婚配0個或多個r的湧現
    r + 婚配一個或多個r的湧現
    r ? 婚配0個或1個r的湧現
    r {m,n} 婚配起碼m最多n個r的湧現
    r {m,} 婚配起碼m個r的湧現

    反復構造有高優先權:即它們僅和形式中的直接正則表達式先驅綁縛
    /ab+/婚配一個"a"後跟一個在世多個"b",而不是"ab"的序列
    /a*/會婚配任何字符串:0個或許多個"a"的隨意率性字符串。 
    exp:
    a = "The moon is made of cheese"
    showRE(a, /\w+/) >> <<The>> moon is made of cheese
    showRE(a, /\s.*\s/) >> The<< moon is made of >>cheese
    showRE(a, /\s.*?\s/) >> The<< moon >>is made of cheese
    showRE(a, /[aeiou]{2,99}/) >> The m<<oo>>n is made of cheese
    showRE(a, /mo?o/) >> The <<moo>>n is made of cheese
  7. 調換
    "|"既婚配它後面的正則表達式或許婚配前面的
    a = "red ball blue sky"
    showRE(a, /d|e/) >> r<<e>>d ball blue sky
    showRE(a, /al|lu/) >> red b<<al>>l blue sky
    showRE(a, /red ball|angry sky/) >> <<red ball>> blue sky
  8. 分組
    圓括號把正則表達式分組,組中的內容被看成一個零丁的正則表達式
    showRE('banana', /(an)+/) >> b<<anan>>a
    # 婚配反復的字母
    showRE('He said "Hello"', /(\w)\1/) >> He said "He<<ll>>o"
    # 婚配反復的子字符串
    showRE('Mississippi', /(\w+)\1/) >> M<<ississ>>ippi
  9. 基於形式的調換
    你能否想過,年夜小寫調換。
    辦法String#sub和String#gsub都在字符串中搜刮婚配第一個參數的部門,然後用第二個參數來調換它們。String#sub只調換一次,而String#gsub調換一切找到的婚配。都前往一個包括了調換的新的字符串的拷貝。退化版本是String#sub!和 String#gsub!
    a = "the quick brown fox"
    a.sub(/[aeiou]/, '*') >> "th* quick brown fox"
    a.gsub(/[aeiou]/, '*') >> "th* q**ck br*wn f*x"
    a.sub(/\s\S+/, '') >> "the brown fox"
    a.gsub(/\s\S+/, '') >> "the"
    第二個參數可所以代碼塊
    a = "the quick brown fox"
    a.sub (/^./) { $&.upcase } >> "The quick brown fox"
    a.gsub(/[aeiou]/) { $&.upcase } >> "thE qUIck brOwn fOx"
  10. 反斜線序列用在調換中
    \& 前面的婚配
    \+ 前面的婚配組
    \` 婚配後面的字符串
    \' 婚配前面的字符串
    \\ 反斜線的字面值
  11. 面向對象的正則表達式
    正則表達式的字面值創立Regexp類
    re = /cat/
    re.type >> Regexp
    辦法Regexp#match從字符串中婚配一個正則表達式,假如不勝利,辦法前往nil,假如勝利,前往MatchData類的一個實例
    exp:
    e = /(\d+):(\d+)/ # match a time hh:mm
    md = re.match("Time: 12:34am")
    md.type >> MatchData
    md[0] # == $& >> "12:34"
    md[1] # == $1 >> "12"
    md[2] # == $2 >> "34"
    md.pre_match # == $` >> "Time: "
    md.post_match # == $' >> "am"
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved