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

主頁 > 知識庫 > 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實現的各種排序算法的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    亚洲国产精品精华液2区45| 成人免费在线视频| 日韩av一区二区三区| 欧美日韩日本视频| 极品美女销魂一区二区三区 | 一区二区激情小说| 在线精品视频一区二区| 亚洲一区二区不卡免费| 777午夜精品免费视频| 精品一区二区三区欧美| 中文字幕第一区| 欧美在线制服丝袜| 国内一区二区视频| 亚洲国产精品一区二区www在线| 欧美区一区二区三区| 粉嫩蜜臀av国产精品网站| 中文字幕中文字幕一区二区| 欧美日韩视频在线观看一区二区三区 | 另类成人小视频在线| 精品国产凹凸成av人导航| 成人一区二区三区视频 | 国产偷国产偷精品高清尤物 | 青青草97国产精品免费观看| 亚洲欧美在线aaa| 精品成人免费观看| 欧美丰满嫩嫩电影| 91视频.com| 91丨九色丨蝌蚪富婆spa| 国产在线视频不卡二| 麻豆91免费看| 免费精品视频在线| 蜜臀av一级做a爰片久久| 亚洲情趣在线观看| 国产精品久久99| 中文字幕一区二区三区不卡在线| 久久精品欧美一区二区三区不卡| 91精品国产麻豆国产自产在线| 色婷婷久久一区二区三区麻豆| 成人福利视频网站| 一本到三区不卡视频| 蜜桃久久久久久| 美洲天堂一区二卡三卡四卡视频| 天堂一区二区在线| 六月丁香婷婷色狠狠久久| 久久国产精品色| 国产成人日日夜夜| 在线观看区一区二| 日韩欧美中文一区二区| 国产亚洲欧美一级| 一区二区在线观看免费| 美女视频黄频大全不卡视频在线播放| 日产精品久久久久久久性色| 激情成人综合网| 日本久久一区二区三区| 日韩免费性生活视频播放| 成人免费在线视频观看| 免费成人在线视频观看| 色94色欧美sute亚洲线路二 | 一区二区三区日韩欧美精品| 五月婷婷激情综合| 91在线观看视频| 久久综合久久综合久久| 亚洲日本一区二区| 国产99久久久国产精品免费看| 欧美综合久久久| 中文字幕一区二区三区色视频| 国产精品国产三级国产三级人妇| 国产精品久久久久久久岛一牛影视| 亚洲综合在线免费观看| 成人av免费在线| 欧美大尺度电影在线| 亚洲第一狼人社区| 欧美性猛交xxxx黑人交| 一区二区三区在线观看国产 | 日韩福利视频网| 91久久精品一区二区二区| 国产精品国产三级国产aⅴ原创 | 亚洲午夜一二三区视频| www.久久久久久久久| 国产精品久久久久aaaa樱花| 国产成人午夜高潮毛片| 中日韩av电影| 一本一本久久a久久精品综合麻豆| 国产精品视频在线看| 丁香激情综合国产| 一区二区日韩av| 4hu四虎永久在线影院成人| 免费观看成人鲁鲁鲁鲁鲁视频| 日韩三级免费观看| 成人午夜短视频| 亚洲精品国产视频| 久久伊人中文字幕| 成人激情av网| 亚洲天天做日日做天天谢日日欢 | 91久久久免费一区二区| 婷婷久久综合九色国产成人 | 在线不卡一区二区| 国产麻豆日韩欧美久久| 一区二区三区影院| wwwwww.欧美系列| 欧美日韩精品二区第二页| 国产一区二区三区在线观看免费 | 日韩免费性生活视频播放| 91日韩在线专区| 国产一区二区三区国产| 国产成人午夜精品影院观看视频 | 色婷婷av一区二区| 黄一区二区三区| 青青草97国产精品免费观看无弹窗版| 久久亚洲影视婷婷| 在线视频你懂得一区二区三区| 精品系列免费在线观看| 五月天一区二区| 午夜精品在线看| 亚洲午夜久久久久久久久电影网| 久久久久久久久久看片| 久久久亚洲综合| 久久久久久久久久久久久久久99 | 欧美电影免费观看高清完整版在线 | 日日夜夜精品视频免费| 亚洲午夜成aⅴ人片| 一区二区三区小说| 亚洲高清免费在线| 免费高清视频精品| 国产精品一区三区| 国产成人av电影免费在线观看| 国产精品一二三区在线| 精品一区二区三区在线观看| 国产在线精品国自产拍免费| 日韩av网站免费在线| 日韩成人免费看| 久久精品72免费观看| 粉嫩高潮美女一区二区三区| 久久国产人妖系列| 日韩电影一区二区三区四区| 蜜臀va亚洲va欧美va天堂| 国产在线视视频有精品| 91久久精品一区二区三区| 欧美一区二区在线不卡| 日本一区二区久久| 午夜a成v人精品| 91在线视频官网| 久久人人爽爽爽人久久久| 亚洲精品五月天| 国产一二三精品| 欧美高清视频一二三区 | 久久精品视频免费观看| 亚洲sss视频在线视频| 粉嫩绯色av一区二区在线观看| 欧美精选在线播放| 国产精品久久久久久久久晋中 | 国产精品理伦片| 婷婷国产在线综合| 欧美日韩国产三级| 亚洲最大成人网4388xx| 91官网在线观看| 日本一区二区三区dvd视频在线| 性久久久久久久久| 色综合天天综合网国产成人综合天 | 欧美成人伊人久久综合网| 亚洲高清不卡在线观看| 在线一区二区三区四区五区| 中文字幕电影一区| 不卡av电影在线播放| 亚洲女同一区二区| 在线免费亚洲电影| 视频一区欧美精品| 精品久久人人做人人爽| 国产精品一二三| 国产精品久久久久精k8 | 欧美一区二区精品在线| av中文字幕一区| 亚洲成人激情自拍| 日韩一区二区三区在线| 久久精品国产第一区二区三区| 精品乱人伦一区二区三区| 大尺度一区二区| 一区二区三区四区五区视频在线观看 | 亚洲成a人片综合在线| 日韩一区国产二区欧美三区| 国产精品亚洲一区二区三区在线| 久久一留热品黄| 欧美日韩高清一区二区| 国产精品一区二区久久精品爱涩| 欧美亚洲综合另类| 韩国欧美国产1区| 久久精品视频在线看| 99re这里只有精品首页| 秋霞电影网一区二区| 国产精品色眯眯| 日韩久久精品一区| 99麻豆久久久国产精品免费| 日本欧美在线观看| 亚洲精品亚洲人成人网| 国产午夜精品一区二区三区视频| 欧美在线视频全部完| 成人高清在线视频| 不卡的av电影在线观看| 精品一区二区三区免费视频| 日本免费新一区视频|