有沒有2019屆研究生一起每天擼一個小演算法?
2018的暑假很快就要結束了,即將面臨2019秋招,想找機器學習、深度學習相關的工作,此處立個Flag,每天學習一個小演算法,直到畢業。還有很多天,有沒有一起的,可以相互溝通,相互學習啊!
這裡安利幾個大佬的部落格:
https://www.cnblogs.com/pinard/category/894692.html
https://www.cnblogs.com/en-heng/category/396835.html
先來一發氣泡排序
python氣泡排序法
如果你理解之前的插入排序法那氣泡排序法就很容易理解,氣泡排序是兩個兩個以向後位移的方式比較大小在互換的過程好了不多了先上程式碼吧如下:
首先還是一個無序列表lis,老規矩打印出來和最後排序對比看,函式方法bubbie_sort氣泡排序,count計數也就是列表長度len(列表),第一個for迴圈取列表中的第一個值然後向後位移,第二個for迴圈取列表i+1也就是第二個值向後位移,這表是第二個for只會取第一個for後面的值好做比較,count長度一直15,如果兩個不一樣會報超出範圍的錯誤,if判斷lis[0]:10 > li[1]:30 如果10大於30,那麼就執行後面的操我這裡簡寫為a,b=b,a原理一樣兩個值互換。不大於就不變j向後位移繼續比較一致到lis最後一個值比較完後迴圈結束,只要條件成立繼續比較,當然如果你不理解可以在迴圈內列印,程式碼如下:
這樣就很直觀的展現內部排序的方法,第一遍迴圈就把最小的值仍到最前面,相當於迴圈一次把整個列表都遍歷一邊找出最小的放到最前面,第二次迴圈在把剩下最小的放入第二位,後面以此類推,好比有一大堆書要放入書架,假如你要從左到右,從小書到大書,你一眼就看到書的大小依次放入書架即可,當然程式沒我們能直觀判斷方便,所以它就把所有書比較一遍心裡有數了,然後根據你指定的規則運作就可以了,它的優勢也是計算能力,所謂各有所長嘛。
軟體開發人員和程式設計師語錄
1.A good programmer is someone who always looks both ways before crossing a one-way street. (Doug Linder)
好的程式設計師即使在過單行道時也總是會環顧兩邊。
2.Don’t worry if it doesn’t work right. If everything did, you’d be out of a job. (Mosher’s Law of Software Engineering)
不要擔心它能否正常工作。如果一切正常,那麼你就會失去工作。
3.The trouble with programmers is that you can never tell what a programmer is doing until it’s too late. (Seymour Cray)
程式設計師的煩惱是,你永遠無法知道一個程式設計師在做什麼,直到為時已晚。
4.Most
of you are familiar with the virtues of a programmer. There are three,
of course: laziness, impatience, and hubris. (Larry Wall)
程式設計師的美德:懶惰,沒有耐心以及老子天下第一。
5.Always
code as if the guy who ends up maintaining your code will be a violent
psychopath who knows where you live. (Martin Golding)
寫程式碼的時候總是想象維護你程式碼的傢伙是一個知道你住在哪裡的暴力精神病患者。
6.One man’s crappy software is another man’s full time job. (Jessica Gaston)
一個人寫的爛軟體將會給另一個人帶來一份全職工作。
對於web前端的學習有不懂的,或者不知道學習路線,不知道學習方法,不知道該如何紮實能找到工作的朋友,我還是要推薦下我自己建的前端學習群:523218370,首先你要是前端黨,其次不管你是小白還是大牛,我都挺歡迎,小白嘛,主動點多問問題也就學好了,群裡每天分享乾貨,包括我自己最近花了一星期整理的一份適合2017年自學的最新web前端資料,送給大家,歡迎初學和進階中的小夥伴。
7.If
builders built buildings the way programmers wrote programs, then the
first woodpecker that came along wound destroy civilization. (Gerald
Weinberg)
如果建築工人用程式設計師寫程式的方式建造建築物,那麼來的第一隻啄木鳥(找bug)就將摧毀文明。
8.The
most likely way for the world to be destroyed, most experts agree, is
by accident. That’s where we come in; we’re computer professionals. We
cause accidents. (Nathaniel Borenstein)
大多數專家認為,世界被破壞的最有可能的方式是,是因為偶然。那就是我們所要進入的領域:我們是計算機專家。我們製造偶然。
9.It’s
a curious thing about our industry: not only do we not learn from our
mistakes, we also don’t learn from our successes. (Keith Braithwaite)
這是我們這個行業的一件咄咄怪事:我們不僅不從錯誤中學習,我們也不從成功中學習。
10.Once a new technology starts rolling, if you’re not part of the steamroller, you’re part of the road. (Stewart Brand)
一旦一種新技術開始滾動碾壓道路,如果你不能成為壓路機的一部分,那麼你就只能成為道路的一部分。
11. If at first you don’t succeed, call it version 1.0 (unknown)
如果第一次你沒有成功,那麼稱之為1.0版,繼續加油。
12.All programmers are playwrights and all computers are lousy actors. (Anonymous Hack Actor)
所有的程式設計師都劇作家,而所有計算機都是糟糕的演員。
13.The sooner you get behind in your work, the more time you have to catch up. (Anonymous Scheduler)
工作拉下得越早,趕上去所需要的時間越多。
14.When
a programming language is created that allows programmers to program in
simple English, it will be discovered that programmers cannot speak
English. (Anonymous Linguist)
當建立一種程式語言允許程式設計師使用簡單英語程式設計的時候,那麼新問題又來了,你會發現程式設計師不說英語。
15.Why do we never have time to do it right, but always have time to do it over? (Anonymous)
為什麼我們總是沒有時間把事情做對,卻有時間做完它?
16.Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
傻瓜寫計算機能理解的程式碼。優秀的程式設計師寫人類能讀懂的程式碼。
17.Any
code of your own that you haven’t looked at for six or more months
might as well have been written by someone else. (Eagleson’s law)
自己的程式碼六個月或更久不見,還不如別人寫的程式碼。
程式設計/軟體開發語錄
1.Measuring programming progress by lines of code is like measuring aircraft building progress by weight. (Bill Gates)
通過程式碼行數衡量開發程序就好比用重量來衡量飛機制造進度。
2. Programming is like sex. One mistake and you have to support it for the rest of your life. (Michael Sinz)
程式設計就像性愛一樣。一個錯誤就能綁住你的餘生。
3.Walking on water and developing software from a specification are easy if both are frozen. (Edward V Berard)
在目的明確的基礎上開發軟體就像在結冰的水上行走一樣簡單。
4.The
first 90 percent of the code accounts for the first 90 percent of the
development time…The remaining 10 percent of the code accounts for the
other 90 percent of the development time.(Tom Cargill)
開始90%的程式碼佔開始90%的開發時間……剩下10%的程式碼還是佔90%的開發時間。
5.Commenting
your code is like cleaning your bathroom — you never want to do it, but
it really does create a more pleasant experience for you and your
guests. (Ryan Campbell)
註釋程式碼就像是清潔浴室——儘管你滿心不情願,但它確實可以為你和你的客人創造一種更舒適的體驗。
6.Programming
today is a race between software engineers striving to build bigger and
better idiot-proof programs, and the universe trying to produce bigger
and better idiots. So far, the universe is winning. (Rick Cook)
當今的程式設計是軟體工程師——努力建設更大多更好的傻瓜式程式,和上帝——試圖產出更大多更好的傻瓜之間的競爭。到目前為止,世上帝是獲勝者。
7.The hardest part of design … is keeping features out. (Donald Norman)
設計中最難的部分……是阻止功能。
8. In order to understand recursion, one must first understand recursion. (Anonymous)
要想了解遞迴,首先必須理解遞迴。
9.There are only two kinds of programming languages: those people always bitch about and those nobody uses. (Bjarne Stroustrup)
只有兩種程式語言:一種是天天捱罵的,另一種是沒人用的。
10.The best thing about a boolean is even if you are wrong, you are only off by a bit. (Anonymous)
關於布林值最妙的一點是,就算你錯了,你也只是錯了這一處而已。
11.If Java had true garbage collection, most programs would delete themselves upon execution. (Robert Swell)
如果Java真的有垃圾收集,那麼大多數程式會執行自我刪除。
對於web前端的學習有不懂的,或者不知道學習路線,不知道學習方法,不知道該如何紮實能找到工作的朋友,我還是要推薦下我自己建的前端學習群:523218370,首先你要是前端黨,其次不管你是小白還是大牛,我都挺歡迎,小白嘛,主動點多問問題也就學好了,群裡每天分享乾貨,包括我自己最近花了一星期整理的一份適合2017年自學的最新web前端資料,送給大家,歡迎初學和進階中的小夥伴。
理論上看,理論和實踐之間是沒有差別的。但是,在實踐中,有。
13.Ready,
fire, aim: the fast approach to software development. Ready, aim, aim,
aim, aim: the slow approach to software development. (Anonymous)
準備,開火,瞄準:快速的軟體開發方法。準備,瞄準,瞄準,瞄準,瞄準:緩慢的軟體開發方法。
14.Programming is 10% science, 20% ingenuity, and 70% getting the ingenuity to work with the science. (Anonymous)
程式設計就是10%的科學,20%得的獨創性,再加70%和這門科學的靈巧合作。
15. It is easier to measure something than to understand what you have measured. (Anonymous)
衡量比理解你衡量了什麼容易。
16.Benchmarks don’t lie, but liars do benchmarks. (Anonymous)
基準不會撒謊,但制定基準的人會撒謊。
17.Better train people and risk they leave – than do nothing and risk they stay. (Anonymous)
就算是培訓好的員工離開——也好過他們什麼也不做卻留下來。
18.The goal of Computer Science is to build something that will last at least until we’ve finished building it. (Anonymous)
電腦科學的目標是構建一個至少能持續到我們構建完成的東西。
19.Java is to JavaScript what Car is to Carpet. (Chris Heilmann)
Java之於JavaScript就像car之於carpet(地毯)。後者看上去像是前者的衍生物,實則是完全不同的兩個東西。
20.It’s
not at all important to get it right the first time. It’s vitally
important to get it right the last time. (Andrew Hunt and David Thomas)
第一次是否正確完成一點也不重要。最後一次正確完成才至關重要。
21.Should
array indices start at 0 or 1? My compromise of 0.5 was rejected
without, I thought, proper consideration. (Stan Kelly-Bootle)
陣列的下標一定要從0或1開始嗎?我認為,我採取的中間值0.5沒有經過適當考慮就被駁回了。
22.Programs must be written for people to read, and only incidentally for machines to execute. (Abelson / Sussman)
程式必須寫得能供人閱讀,機器執行只是附帶。
23.Programming can be fun, so can cryptography; however they should not be combined. (Kreitzberg and Shneiderman)
程式設計可以很有趣,密碼學也是如此;但是兩者不應該攪和在一起。
24. Copy and paste is a design error. (David Parnas)
複製貼上是一個設計錯誤。
25.Computers are good at following instructions, but not at reading your mind. (Donald Knuth)
計算機善於遵循指令,不善於讀取你的想法。
軟體除錯語錄
1.Deleted code is debugged code. (Jeff Sickel)
刪除的程式碼是經過除錯的程式碼。
2.If
debugging is the process of removing software bugs, then programming
must be the process of putting them in. (Edsger Dijkstra)
如果除錯是消除軟體bug的過程,那麼程式設計就是產出bug的過程。
3.Debugging
is twice as hard as writing the code in the first place. Therefore, if
you write the code as cleverly as possible, you are–by definition–not
smart enough to debug it.
除錯一段程式的難度是寫出這段程式的難度的兩倍,因此,如果你的程式碼儘可能清楚的話,那麼你就不用費力地除錯它。
4.
It’s hard enough to find an error in your code when you’re looking for
it; it’s even harder when you’ve assumed your code is error-free. (Steve
McConnel)
你的目的是找bug的時候,bug已經很難找了;更不要說當你認為自己的程式碼中沒有錯誤的時候。
軟體bug語錄
1.It’s not a bug – it’s an undocumented feature. (Anonymous)
這不是bug——這是沒有被證明的功能。
2.Without requirements or design, programming is the art of adding bugs to an empty text file. (Louis Srygley)
如果沒有需求和設計,那麼程式設計就是新增bug到空的文字檔案的藝術。
3.Bad code isn’t bad, its just misunderstood. (Anonymous Code Behaviorist)
所謂壞的程式碼並不壞,它只是被誤解了。
對於web前端的學習有不懂的,或者不知道學習路線,不知道學習方法,不知道該如何紮實能找到工作的朋友,我還是要推薦下我自己建的前端學習群:523218370,首先你要是前端黨,其次不管你是小白還是大牛,我都挺歡迎,小白嘛,主動點多問問題也就學好了,群裡每天分享乾貨,包括我自己最近花了一星期整理的一份適合2017年自學的最新web前端資料,送給大家,歡迎初學和進階中的小夥伴。
4.There are two ways to write error-free programs; only the third one works. (Alan J. Perlis)
寫沒有錯誤的程式有兩種方式;但第三種才有效。
5.Beware of bugs in the above code; I have only proved it correct, not tried it. (Donald Knuth)
小心上面程式碼中的bug;我只證明了它是正確的,還沒有嘗試過。
軟體/終端產品語錄
1.Before software can be reusable it first has to be usable. (Ralph Johnson)
在軟體可以被可重複使用前,它首先必須是可用的。
2.Software undergoes beta testing shortly before it’s released. Beta is Latin for “still doesn’t work”. (Anonymous)
軟體在釋出前要經過beta測試。beta即拉丁語“仍然無法正常工作”的意思。
3.The best performance improvement is the transition from the nonworking state to the working state. (J. Osterhout)
最佳效能改進是指從不可工作狀態向工作狀態的轉變。
4.The cheapest, fastest, and most reliable components are those that aren’t there. (Gordon Bell)
最便宜,最快和最可靠的元件是不存在的。
5. I think Microsoft named .Net so it wouldn’t show up in a Unix directory listing. (Oktal)
我認為微軟命名.Net,它就不會在Unix目錄列表顯示出來。
6.Software and cathedrals are much the same – first we build them, then we pray. (Sam Redwine)
軟體和教堂非常相似——首先,我們建造它們,然後我們祈禱。
7.The software isn’t finished until the last user is dead. (Anonymous)
直到最後一個使用者死去,軟體才算完成。
8.Most
software today is very much like an Egyptian pyramid with millions of
bricks piled on top of each other, with no structural integrity, but
just done by brute force and thousands of slaves. (Alan Kay)
現在的大多數軟體非常像埃及金字塔,在彼此之間堆建了成千上萬的磚塊,缺乏結構完整性,只是靠蠻力和成千上萬的奴隸完成。