algorithms010
woshiyilitongdouzi
这个作者很懒,什么都没留下…
展开
-
gem algorithms010 读然后学着写
#在网上想找一些小程序进行练手,没找到,于是在书架上番,找到一本书《算法迷题》#就用这本书上的题目,进行练习。这是第一题,9宫格的问题。$arr=[]$book=[](0..10).each do |i| $book[i]=1endputs $arr.to_sputs $book.to_sdef is_ok() he=(1..9).to_a.inject(0) {|x,s...原创 2019-10-14 18:13:54 · 70 阅读 · 1 评论 -
gem algorithms010 读然后学着写
gem algorithms010 读然后学着写今天为了弄那个参赛国家接龙的程序,忽然想到,《程序设计实践》上讲了,齐次马尔科夫过程,我想,用ruby也写一次。因为当时,用C语言感觉相当麻烦,而用awk而无比优雅。可程序并不能解决我的问题。还得再想想。arr=[]File.open("english2.txt") do |fp| fp.each_line do |line|# ...原创 2019-10-14 17:38:10 · 69 阅读 · 0 评论 -
gem algorithms010 笔记本环境准备
gem algorithms010 笔记本环境准备今天讲讲我的笔记本环境,我发现要讲究舒适,一定要把环境配好。一、打开ruby的命令行,进入cmd,进入编码的子目录,再gvim进行编辑二、编辑好后,存盘,alt+tab切换到命令行界面,进行调试三、当编辑好后,把博客内容先写到一个文本中,打开这个文本的方法是:ctrl+alt+a 输入csdn.txt,直接打开四、编辑好了,打开csd...原创 2019-10-14 14:46:25 · 87 阅读 · 0 评论 -
gem algorithms010 读然后写
gem algorithms010 读然后写今天把昨天没弄完的题目继续写。我的理解是,进行参赛国家的接龙,第一次有32个选择,第二次,在选定一个国家后,找出其后继国家,直到选不出国家后继为止。因此,换了种写法,直接求出国家的后继,如下:$guojia=%w(Brazil Cameroon Chile Greece Uruguay Italy France Bosnia_and_Herzegov...原创 2019-10-14 14:32:13 · 78 阅读 · 0 评论 -
gem algorithms010 读然后学着写
gem algorithms010 读然后学着写今天遇到一个难题,进行接龙,《程序员的算法趣趣题》第14问我用队列没弄出来,进行深度优先搜索,程序如下,弄出来的也不对。我的理解的,先找一个单词,再根据单词从哈希表中查该单词末尾字母表示的链,再选第一个,再重复,如果找不到,就回到前一步,选下一个单词。看上去用深度优先搜索可弄出来。发现,算法不对。(今天买了轨迹球,真好玩。)$gu...原创 2019-10-13 20:14:29 · 76 阅读 · 0 评论 -
gem algorithms010 读然后学着写03
gem algorithms010 读然后学着写03#1000日元换成最多15种硬币(10,50,100,500)(0..100).each do |i| (0..20).each do |j| (0..10).each do |k| (0..2).each do |m| if i*10+j*50+k*100+m*500==1000 and ...原创 2019-10-13 11:17:19 · 113 阅读 · 1 评论 -
gem algorityms010读源码再学着写
gem algorityms010读源码再学着写Q03翻牌这道题,开始没有头绪,后来想先随便开始吧,结果居然做出来了,真是神奇。Max=100pai=(1..Max).to_aputs pai.to_spai[0,0]=0puts pai.to_sidx=2while true old_str=pai.to_s tmp_idx=idx while(tmp_id...原创 2019-10-13 09:49:53 · 78 阅读 · 0 评论 -
gem algorithms010读然后写
gem algorithms010读然后写早上读了新书《掌控习惯》后,书上讲,要养成习惯,关键是做某事的数量,不在于质量,数量上去了,总有些满足质量标准的。为此,我的博客中一定要数量多,多写,然后学着写好。拿《程序员的算法趣题》上面的练习题进行练。一、找回文数任务是找出十进制,2进制,8进制都是回文数的数。num=11cnt=0while true if num.to_s =...原创 2019-10-13 07:59:21 · 97 阅读 · 0 评论 -
gem algorithms010 读源码后开始写
gem algorithms010 读源码后开始写今天接着想把稀疏矩阵的几个算法弄一下,先弄转置,我不知如何在ruby中存储结构体,于是用struct,写得很差,总算弄出一个。n=Struct.new("JUCHEN",:mu,:nu,:tu,:arr)data=[[1,2,12],[1,3,9],[3,1,-3],[3,6,14], [4,3,24],[5,2,18]...原创 2019-10-12 07:27:28 · 85 阅读 · 0 评论 -
gem algorithms010 读代码后试着写
下面是子串模式匹配程序。def Index(s,t) i=0 j=0 while i<=s.size-1 and j<=t.size-1 if s[i]==t[j] i +=1 j+=1 else i=i-j+2 j=1 end end if j>t.size-1 ...原创 2019-10-12 06:32:45 · 87 阅读 · 0 评论 -
gem algorithms010 读代码再开始学着写
gem algorithms010 读代码再开始学着写昨天因为弄不出增量序列的数据,所以没有写shell排序,今天想,先把增量序列手工写出来,再写shell排序,代码如下:def ShellInsert(arr,dk) (dk..arr.size-1).each do |i| r0=arr[i] j=i-dk while j>=0 and r0<a...原创 2019-10-12 06:31:32 · 82 阅读 · 0 评论 -
gem algorithms010 读然后学着写
gem algorithms010 读然后学着写《数据结构》书上有2-路插入排序,书上只用一个数组,我用两个临时数据,把这个排序算法弄出来了。程序如下:def insert(arr,val) r0=val k=0 (arr.size-1).downto(-1) do |i| if i>=0 and arr[i] >= r0 arr[i+1]=arr...原创 2019-10-11 17:33:45 · 65 阅读 · 0 评论 -
gem algorithms0.1.0 算法部分分析2
gem algorithms0.1.0 算法部分分析2接着分析比较排序方法,先来个测试例子。如:irb(main):001:0> require 'algorithms'=> trueirb(main):002:0> a=[5,4,3,1,2]=> [5, 4, 3, 1, 2]irb(main):003:0> Algorithms::Sort.comb_...原创 2019-10-10 20:29:32 · 91 阅读 · 0 评论 -
gem algorithms0.1.0 算法部分分析3
gem algorithms0.1.0 算法部分分析3第三个算法较简单,是简单的选择法排序,而且思路和书上的差不多,其源码如下: # Algorithms::Sort.selection_sort [5, 4, 3, 1, 2] => [1, 2, 3, 4, 5] def self.selection_sort(container) 0.upto(container....原创 2019-10-10 20:47:43 · 118 阅读 · 0 评论 -
gem algorithms0.1.0 算法部分分析4
gem algorithms0.1.0 算法部分分析4今天把环境搭建好了,用了两个显示器,让win10进行显示器扩展,并设置好主显示器,方便鼠标的移动。再在cygwin中,为vim建立配置文件,.vimrc,并把windows下的配置文件拷贝过去,可惜不能识别rb文件,因为在windows下,会自动加上end的。现在要手工添加这一句,感觉有些不便。不过,开始,不能CTRL+A全选,CTRL...原创 2019-10-10 20:59:20 · 144 阅读 · 0 评论 -
gem algorithms0.1.0 算法部分分析4
gem algorithms0.1.0 算法部分分析4今天早上,接着昨天的读,发现我很喜欢这些算法,因为能看懂,而且发现作者使用了许多ruby的特有写法,感觉很好。 def self.shell_sort(container) increment = container.size/2 while increment > 0 do (increment..co...原创 2019-10-11 08:31:15 · 122 阅读 · 0 评论 -
gem algorithms0.1.0 算法部分Algorithms::Search分析1
gem algorithms0.1.0 算法部分Algorithms::Search分析1我这不算是分析源码了,只算是自己读一遍,顺便记下所得。不过,就像有人说,写文章不是为了取悦于他人,写文章是为了把自己给说服,因为一定要诚实的写,不要作假。为此,继续。def self.binary_search(container, item) return nil if item.nil?...原创 2019-10-11 08:41:21 · 112 阅读 · 0 评论 -
gem algorithms010 Containers::RubyDeque 使用
gem algorithms010 Containers::RubyDeque 使用算法部分大致看了一下,进入具体的数据结构中去,先翻了deque的源码,摸不着头绪,发现,还是要先了解用法,再了解如何实现。如是,还是读spec下的内容。打开spec文件,再在irb中进行测试。发现deque不知是啥玩意儿。irb(main):042:0> deque.push_front(1)=&g...原创 2019-10-11 09:31:28 · 91 阅读 · 0 评论 -
gem algorithms010源码分析——读然后写
gem algorithms010源码分析——读然后写刚才读了作者的源码,我现在就把《数据结构》课本上,相关算法用ruby改编一下,验证自己的理解。直接插入排序 1 def InsertSort(arr) 2 (1..arr.size-1).each do |i| 3 if arr[i]<arr[i-1] 4 r0=arr[i] 5 ...原创 2019-10-11 12:11:56 · 87 阅读 · 0 评论 -
gem algorithms010 读源码后试着写
gem algorithms010 读源码后试着写上午花时间装cygwin下的vim,开始时,是可以从bash下的vim中拷数据到windows下,后来重新安装了gvim后,就不可以了。折腾了半天,终于可以了。下午接着写希尔排序,我发现书上的知识是分散的,我想写一个shell排序,发现首先增量序列就弄不出来。也对,书上都是伪代码呢。shell排序写不出来,先写快速排序。def Par...原创 2019-10-11 15:37:18 · 85 阅读 · 0 评论 -
gem algorithms010 读然后写
gem algorithms010 读然后写接着把书上的伪码改为ruby代码,但改归并排序时,出错了。程序如下:def Merge(sr,tr,i,m,n) j=m+1 k=i while (i<=m and j<=n) if sr[i]<=sr[j] tr[k]=sr[i] i +=1 else tr[k]=...原创 2019-10-11 16:25:40 · 78 阅读 · 0 评论 -
gem algorithms0.1.0 算法部分分析1
gem algorithms0.1.0 算法部分分析1前面都是为了做准备工作,现在开始深入程序,我是这样写冒泡法的。a=[6,4,2,1,3]puts a.to_s(0..a.size-2).each do |i| (0..a.size-2-i).each do |j| if a[j]>a[j+1] then ...原创 2019-10-10 20:12:08 · 315 阅读 · 0 评论