算法研究
薛定谔之死猫
生当作人杰,死亦为鬼雄。
展开
-
算法回锅肉——桶排序
示例代码纯粹是为了加深印象,选择的目标语言有更便捷的实现方式,另外去掉了一些假设条件检查。 #encoding:gbk Size = 1000 arr = Array.new(Size) do #初始化待排序数组,随机填写元素 rand(Size) end def partition(a,p,r) #分片,粗糙拆分为两类 x = a[r] i = p - 1 for j in p....原创 2019-12-22 03:14:48 · 195 阅读 · 0 评论 -
算法回锅肉——基数排序
示例代码纯粹是为了加深印象,选择的目标语言有更便捷的实现方式,另外去掉了一些假设条件检查。 #encoding:gbk NElement = 20 NRadix = 4 K = 5 arr = Array.new(NElement) do #初始化待排序数组,随机填写元素 Array.new(NRadix) do rand(K) end end def counting_sort(...原创 2019-12-22 02:33:54 · 193 阅读 · 0 评论 -
算法回锅肉——计数排序
示例代码纯粹是为了加深印象,选择的目标语言有更便捷的实现方式,另外去掉了一些假设条件检查。 #encoding:gbk Size = 20 arr = Array.new(Size) do #初始化待排序数组,随机填写元素 rand(Size) end def counting_sort(a,b,k) c = Array.new(k + 1,0) #下标数组 a.each do |x...原创 2019-12-22 01:57:33 · 186 阅读 · 0 评论 -
算法回锅肉——快速排序(随机)
示例代码纯粹是为了加深印象,选择的目标语言有更便捷的实现方式,另外去掉了一些假设条件检查。 #encoding:gbk Size = 20 arr = Array.new(Size) do #初始化待排序数组,随机填写元素 rand(Size) end def random_partition(a,p,r) #随机选择主元素,抗拼爹 i = rand(r - p) + p a[r],...原创 2019-12-22 00:22:16 · 196 阅读 · 0 评论 -
算法回锅肉——快速排序
示例代码纯粹是为了加深印象,选择的目标语言有更便捷的实现方式,另外去掉了一些假设条件检查。 #encoding:gbk Size = 20 arr = Array.new(Size) do #初始化待排序数组,随机填写元素 rand(Size) end def partition(a,p,r) #分片,粗糙拆分为两类 x = a[r] i = p - 1 for j in p..r...原创 2019-12-21 23:56:11 · 176 阅读 · 0 评论 -
算法回锅肉——堆排序
示例代码纯粹是为了加深印象,选择的目标语言有更便捷的实现方式,另外去掉了一些假设条件检查。 #encoding:gbk Size = 20 class Array attr_accessor :heap_size end arr = Array.new(Size) do #初始化待排序数组,随机填写元素 rand(Size) end def left(i) 2*i end d...原创 2019-12-21 23:07:37 · 145 阅读 · 0 评论 -
算法回锅肉——归并排序
示例代码纯粹是为了加深印象,选择的目标语言有更便捷的实现方式,另外去掉了一些假设条件检查。 #encoding:gbk Size = 20 arr = Array.new(Size) do #初始化待排序数组,随机填写元素 rand(Size) end def merge(a,p,q,r) one = a[p,q - p + 1] #括弧中第二参数是元素个数,容易坑 two = a[...原创 2019-12-21 19:43:21 · 134 阅读 · 0 评论 -
算法回锅肉——冒泡排序
示例代码纯粹是为了加深印象,选择的目标语言有更便捷的实现方式,另外去掉了一些假设条件检查。 #encoding:gbk Size = 20 arr = Array.new(Size) do #初始化待排序数组,随机填写元素 rand(Size) end def bubble_sort(a) b = a.clone i = j = 0 for i in 0...b.size - 1...原创 2019-12-21 17:51:12 · 166 阅读 · 0 评论 -
算法回锅肉——插入排序
示例代码纯粹是为了加深印象,选择的目标语言有更便捷的实现方式,另外去掉了一些假设条件检查。 #encoding:gbk Size = 20 arr = Array.new(Size) do #初始化待排序数组,随机填写元素 rand(Size) end def insertion_sort(a) b = a.clone i = j = key = 0 for j in 1...b....原创 2019-12-21 16:41:16 · 175 阅读 · 0 评论