校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Ruby實現的各種排序算法

Ruby實現的各種排序算法

熱門標簽:百度地圖標注自定義圖片 白銀外呼paas系統 地圖標注賺錢項目注冊 常德電銷平臺外呼系統軟件價格 滴滴外呼系統 徐州網絡外呼系統哪個好 高德地圖標注客服 電銷機器人廠商代理 湖州u友防封電銷卡

時間復雜度:Θ(n^2)

Bubble sort

復制代碼 代碼如下:

def bubble_sort(a) 
  (a.size-2).downto(0) do |i| 
    (0..i).each do |j| 
      a[j], a[j+1] = a[j+1], a[j] if a[j] > a[j+1] 
    end 
  end 
  return a 
end

Selection sort

復制代碼 代碼如下:

def selection_sort(a) 
  b = [] 
  a.size.times do |i| 
    min = a.min 
    b min 
    a.delete_at(a.index(min)) 
  end 
  return b 
end

Insertion sort

復制代碼 代碼如下:

def insertion_sort(a) 
  a.each_with_index do |el,i| 
    j = i - 1 
      while j >= 0 
        break if a[j] = el 
        a[j + 1] = a[j] 
        j -= 1 
      end 
    a[j + 1] = el 
  end 
  return a 
end 

 Shell sort
 

復制代碼 代碼如下:

def shell_sort(a) 
  gap = a.size 
  while(gap > 1) 
    gap = gap / 2 
    (gap..a.size-1).each do |i| 
      j = i 
      while(j > 0) 
        a[j], a[j-gap] = a[j-gap], a[j] if a[j] = a[j-gap] 
        j = j - gap 
      end 
    end 
  end 
  return a 
end

時間復雜度:Θ(n*logn)

Merge sort

復制代碼 代碼如下:

def merge(l, r) 
  result = [] 
  while l.size > 0 and r.size > 0 do 
    if l.first r.first 
      result l.shift 
    else 
      result r.shift 
    end 
  end 
  if l.size > 0 
    result += l 
  end 
  if r.size > 0 
    result += r 
  end 
  return result 
end 
 
def merge_sort(a) 
  return a if a.size = 1 
  middle = a.size / 2 
  left = merge_sort(a[0, middle]) 
  right = merge_sort(a[middle, a.size - middle]) 
  merge(left, right) 
end 

Heap sort

復制代碼 代碼如下:

def heapify(a, idx, size) 
  left_idx = 2 * idx + 1 
  right_idx = 2 * idx + 2 
  bigger_idx = idx 
  bigger_idx = left_idx if left_idx size a[left_idx] > a[idx] 
  bigger_idx = right_idx if right_idx size a[right_idx] > a[bigger_idx] 
  if bigger_idx != idx 
    a[idx], a[bigger_idx] = a[bigger_idx], a[idx] 
    heapify(a, bigger_idx, size) 
  end 
end 

def build_heap(a) 
  last_parent_idx = a.length / 2 - 1 
  i = last_parent_idx 
  while i >= 0 
    heapify(a, i, a.size) 
    i = i - 1 
  end 
end 
 
def heap_sort(a) 
  return a if a.size = 1 
  size = a.size 
  build_heap(a) 
  while size > 0 
    a[0], a[size-1] = a[size-1], a[0] 
    size = size - 1 
    heapify(a, 0, size) 
  end 
  return a 
end 

Quick sort

復制代碼 代碼如下:

def quick_sort(a) 
  (x=a.pop) ? quick_sort(a.select{|i| i = x}) + [x] + quick_sort(a.select{|i| i > x}) : [] 
end 

時間復雜度:Θ(n)

Counting sort

復制代碼 代碼如下:

def counting_sort(a) 
  min = a.min 
  max = a.max 
  counts = Array.new(max-min+1, 0) 
 
  a.each do |n| 
    counts[n-min] += 1 
  end 
 
  (0...counts.size).map{|i| [i+min]*counts[i]}.flatten 
end 

Radix sort

復制代碼 代碼如下:

def kth_digit(n, i) 
  while(i > 1) 
    n = n / 10 
    i = i - 1 
  end 
  n % 10 
end 
 
def radix_sort(a) 
  max = a.max 
  d = Math.log10(max).floor + 1 
 
  (1..d).each do |i| 
    tmp = [] 
    (0..9).each do |j| 
      tmp[j] = [] 
    end 
 
    a.each do |n| 
      kth = kth_digit(n, i) 
      tmp[kth] n 
    end 
    a = tmp.flatten 
  end 
  return a 
end 

Bucket sort
復制代碼 代碼如下:

def quick_sort(a) 
  (x=a.pop) ? quick_sort(a.select{|i| i = x}) + [x] + quick_sort(a.select{|i| i > x}) : [] 
end 
 
def first_number(n) 
  (n * 10).to_i 
end 
 
def bucket_sort(a) 
  tmp = [] 
  (0..9).each do |j| 
    tmp[j] = [] 
  end 
   
  a.each do |n| 
    k = first_number(n) 
    tmp[k] n 
  end 
 
  (0..9).each do |j| 
    tmp[j] = quick_sort(tmp[j]) 
  end 
 
  tmp.flatten 
end 
 
a = [0.75, 0.13, 0, 0.44, 0.55, 0.01, 0.98, 0.1234567] 
p bucket_sort(a) 
 
# Result:  
[0, 0.01, 0.1234567, 0.13, 0.44, 0.55, 0.75, 0.98] 

您可能感興趣的文章:
  • ruby實現的插入排序和冒泡排序算法
  • Ruby實現的矩陣連乘算法
  • Ruby實現二分搜索(二分查找)算法的簡單示例
  • Ruby實現的3種快速排序算法
  • Ruby實現的合并排序算法
  • Ruby實現的最優二叉查找樹算法
  • Ruby實現的圖片濾鏡算法代碼

標簽:梧州 荊門 永州 公主嶺 遼寧 三沙 張家界 普洱

巨人網絡通訊聲明:本文標題《Ruby實現的各種排序算法》,本文關鍵詞  Ruby,實現,的,各種,排序,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Ruby實現的各種排序算法》相關的同類信息!
  • 本頁收集關于Ruby實現的各種排序算法的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    精品免费日韩av| 麻豆国产91在线播放| 国产精品白丝在线| 国产亚洲自拍一区| 精品国产乱码久久久久久影片| 91精品国产高清一区二区三区蜜臀| 欧美日韩亚洲国产综合| 欧美日韩国产高清一区二区 | 欧美tk丨vk视频| 日韩欧美一级片| 亚洲精品在线电影| 日韩欧美www| 欧美精品一区二区三区很污很色的| 久久综合一区二区| 久久免费精品国产久精品久久久久| 久久精品亚洲国产奇米99| 国产午夜精品一区二区三区嫩草| 亚洲国产精品成人综合色在线婷婷| 国产精品无人区| 亚洲欧美一区二区在线观看| 一二三四社区欧美黄| 午夜精品福利在线| 美女视频黄久久| 国产成都精品91一区二区三| 成人av免费在线播放| 日本乱人伦一区| 在线不卡中文字幕| 欧美精品一区二区三区高清aⅴ| 国产欧美一区二区在线观看| 亚洲同性gay激情无套| 亚洲国产精品视频| 免费成人深夜小野草| 日本道免费精品一区二区三区| 91行情网站电视在线观看高清版| 欧美老人xxxx18| www国产精品av| 亚洲视频每日更新| 青青草伊人久久| 国产成人a级片| 欧洲一区二区av| 日韩视频123| 中文字幕一区日韩精品欧美| 五月婷婷激情综合网| 国产综合色产在线精品| 97精品久久久久中文字幕| 欧美人牲a欧美精品| 国产偷国产偷亚洲高清人白洁| 亚洲色图一区二区三区| 免费人成在线不卡| 91一区二区在线| 69p69国产精品| 亚洲国产电影在线观看| 午夜激情一区二区| 国产成人免费视频一区| 在线不卡中文字幕| 中文字幕日本不卡| 男人操女人的视频在线观看欧美| 91在线一区二区三区| 欧美一级精品大片| 综合自拍亚洲综合图不卡区| 麻豆精品国产传媒mv男同| 91蜜桃视频在线| 欧美精品一区二区三区蜜臀| 亚洲成va人在线观看| 高清成人在线观看| 欧美一级视频精品观看| 亚洲视频一二三区| 国产精品乡下勾搭老头1| 欧美巨大另类极品videosbest| 国产欧美一区二区精品性色| 悠悠色在线精品| 成人开心网精品视频| 91麻豆精品国产91久久久资源速度| 日韩一区中文字幕| 国产aⅴ综合色| 91精品国产综合久久精品图片 | 一级日本不卡的影视| 国产不卡视频一区| 日韩免费看网站| 亚洲国产精品久久久男人的天堂| 91在线精品一区二区三区| 久久综合久久综合久久| 视频一区二区欧美| 色94色欧美sute亚洲线路二 | 成人夜色视频网站在线观看| 日韩欧美一级二级三级| 日韩精品一二区| 欧美日韩三级一区| 亚洲综合免费观看高清在线观看| 91麻豆文化传媒在线观看| 国产三级欧美三级| 狠狠色丁香久久婷婷综合_中| 欧美精品欧美精品系列| 亚洲国产一二三| 91黄色免费观看| 亚洲欧洲av一区二区三区久久| 国产白丝精品91爽爽久久| 久久精品欧美一区二区三区麻豆| 国产麻豆午夜三级精品| 精品国产电影一区二区| 精品制服美女丁香| 欧美成人一区二区三区在线观看| 日本人妖一区二区| 日韩免费视频一区| 久久国产麻豆精品| 精品不卡在线视频| 久久超碰97中文字幕| 精品国产人成亚洲区| 久久aⅴ国产欧美74aaa| 久久综合色天天久久综合图片| 国产在线播精品第三| 国产亚洲成年网址在线观看| 成人综合在线观看| 中文字幕一区二区三区av| 91视频国产资源| 亚洲一区视频在线观看视频| 在线观看日韩电影| 性久久久久久久久| 日韩午夜中文字幕| 国产综合色精品一区二区三区| 欧美激情一区二区三区| 91免费视频网| 亚洲成人精品一区二区| 日韩精品中午字幕| 国产suv一区二区三区88区| 综合分类小说区另类春色亚洲小说欧美 | 亚洲综合清纯丝袜自拍| 欧美精品三级日韩久久| 国精产品一区一区三区mba视频| 欧美激情综合在线| 色欧美片视频在线观看| 日韩精品一二三| 久久久久国产精品麻豆ai换脸| 成人久久视频在线观看| 亚洲国产一区二区在线播放| 欧美成人aa大片| 国产不卡视频一区| 亚洲午夜电影在线观看| 欧美不卡一区二区三区四区| 国产91清纯白嫩初高中在线观看| 亚洲一区在线观看网站| 久久久一区二区三区捆绑**| 91蜜桃免费观看视频| 欧美bbbbb| 亚洲素人一区二区| 制服丝袜亚洲播放| 不卡的电影网站| 午夜精品视频在线观看| 国产午夜亚洲精品不卡| 欧美优质美女网站| 国产精品一区二区在线观看不卡 | 99久久精品国产精品久久| 亚洲一区二区三区国产| 精品欧美一区二区三区精品久久| 成人国产精品免费网站| 天堂va蜜桃一区二区三区漫画版| 久久久九九九九| 欧美日韩一区 二区 三区 久久精品| 国产精品一二三四区| 亚洲综合一区二区三区| 久久久久久久久97黄色工厂| 欧美日韩中文一区| 成人免费高清在线观看| 午夜免费欧美电影| 国产欧美一区二区三区鸳鸯浴| 宅男噜噜噜66一区二区66| 99re这里只有精品首页| 精品一区二区三区免费观看| 亚洲激情av在线| 国产欧美日韩麻豆91| 欧美一区二区三区思思人| 972aa.com艺术欧美| 久草中文综合在线| 五月婷婷综合激情| 亚洲品质自拍视频网站| 国产视频一区在线播放| 欧美一区二区性放荡片| 欧美网站一区二区| 97精品久久久午夜一区二区三区 | 日韩av电影天堂| 亚洲免费在线看| 亚洲国产成人自拍| 久久伊人蜜桃av一区二区| 欧美日韩精品欧美日韩精品| 色综合久久中文综合久久97 | 欧美一区二区在线免费播放| 91激情在线视频| 91麻豆国产香蕉久久精品| 国产成人高清在线| 国产盗摄女厕一区二区三区| 激情文学综合网| 毛片av一区二区三区| 五月婷婷综合激情| 亚洲高清在线精品| 亚洲国产视频直播| 一区二区三区美女| 一区二区三区产品免费精品久久75| 亚洲欧美在线另类| 中文字幕一区二区三区在线播放 | 日韩电影在线免费|