摘要:
KMP算法是一種優秀的字符串匹配算法,字符串匹配的常規算法是一步一步進行移位和比較操作,直至找到完全相匹配的字符串。 下面通過一個例子,為大家仔細說明KMP算法的使用和思路: 問題: 在字符串“DEABCDABABCDABCDABDE”字符串中,匹配字符串"ABCDABD". 算法思路: KMP算法
閱讀全文
posted @ 2018-03-14 17:01
菠蘿有點甜
閱讀(265)
推薦(0)
摘要:
從大一接觸C語言開始,世界就以一種全新的方式向我展開了。 說起來,大一剛開始接觸C語言的時候,完全處于懵逼狀態,根本不知道這玩意是啥,畢竟我們河南的孩子在高考之前基本上就只有一個目標:考上大學,整天都是語數外、物化生……根本不知道編程是什么意思,由于從來沒有接觸過,上課聽講就像聽天書一樣,直到第一次
閱讀全文
posted @ 2018-02-02 17:25
菠蘿有點甜
閱讀(810)
推薦(4)
2018年3月21日
摘要:
直接插入排序:把N哥待排序的元素看成一個有序表和一個無序表。起始,有序表中只包含一個元素,無序表中包含N-1個元素,排序過程中每次從無序表中取出第一個元素,將他插入到有序表中的適當位置,使之成為新的有序表,重復N-1次則完成排序。 圖解: 代碼:
閱讀全文
posted @ 2018-03-21 17:26
菠蘿有點甜
閱讀(102)
推薦(0)
摘要:
選擇排序也是一種較為簡單的排序算法,算法時間復雜度為O(N²)。 選擇排序的思想是:從未排序的數列中找到最小的元素,將其存放在對頭,再從其余的元素中找到最小的元素,放到已排序數列的末尾,依次遍歷。 圖解: 代碼:
閱讀全文
posted @ 2018-03-21 17:07
菠蘿有點甜
閱讀(137)
推薦(0)
摘要:
冒泡排序法是我們接觸到的最簡單的一種排序算法,如果說讓你寫一個冒泡排序都寫不出來,可能你真的需要去靜下心來,好好地學習一些簡單的算法。 冒泡排序是遍歷若干次要排序的數列,每次遍歷都會從前往后依次比較相鄰的兩個數,每次遍歷結束都會將未排序的部分的最大或最小值放在未排序隊列的隊尾,話不多說,讓我們代碼上
閱讀全文
posted @ 2018-03-21 16:20
菠蘿有點甜
閱讀(144)
推薦(0)
2018年3月16日
摘要:
首先是KMP算法的主體,可能存在一定的代碼冗余,但是是完全按照我上篇文章所寫的內容寫的,可能和網上的代碼不太一樣,但更好理解。下面插入生成部分匹配值的函數。 這個函數代碼冗余量有點多,需要改進,但目前沒有想到修改方法。
閱讀全文
posted @ 2018-03-16 16:19
菠蘿有點甜
閱讀(276)
推薦(0)
2018年3月14日
摘要:
快速排序算法采用分治法的策略,首先在數列中隨便選出一個數作為基準,將所有比基準小的數放在基準的前面,所有比基準大的數放在基準的后面,一趟走完之后,基準的位置已經完全確認了,數據被分成了兩部分,在將這兩部分遞歸進行上面的操作,即完成了快速排序的實現。
閱讀全文
posted @ 2018-03-14 15:42
菠蘿有點甜
閱讀(164)
推薦(0)
2018年3月12日
摘要:
快速排序算法 快速排序是由東尼·霍爾所發展的一種排序算法。在平均狀況下,排序 n 個項目要Ο(n log n)次比較。在最壞狀況下則需要Ο(n2)次比較,但這種狀況并不常見。事實上,快速排序通常明顯比其他Ο(n log n) 算法更快,因為它的內部循環(inner loop)可以在大部分的架構上很有
閱讀全文
posted @ 2018-03-12 22:22
菠蘿有點甜
閱讀(395)
推薦(0)
2018年2月5日
摘要:
首先說明,這不是一篇雞湯文,所述所寫都是我自己的親身經歷,只做紀念和共勉! 從小時候開始,估計我們每個人都被問過“你的夢想是什么?”,小時候的我們可能完全不知道什么是夢想,大概就是自己以后想要成為的人吧,那個時候的我們又傻又天真,張口閉口就是“我想當個科學家”,不知道大家是怎么回答這個問題的,反正我
閱讀全文
posted @ 2018-02-05 22:38
菠蘿有點甜
閱讀(261)
推薦(0)
2018年1月15日
摘要:
C#網絡編程學習 --多線程編程技術 對于 掛起 、 睡眠 與 阻塞 的理解 我用三個既生動形象,又貼近生活的例子來表達我對于這三個概念的理解: 掛起: “寫作業寫累了,需要休息一會兒,便上床睡覺,但并沒有定鬧鐘,直到老媽把我叫醒,我才起床,繼續寫作業” 其中“寫作業”就是指我們線程中的程序執行,“
閱讀全文
posted @ 2018-01-15 11:57
菠蘿有點甜
閱讀(314)
推薦(0)