原创 算法之旅——KMP模式匹配

       模式匹配是數據結構中的基本運算之一,它在很多地方都得到了應用,字符串模式匹配指的是:找出模式串在一個較長的字符串中出現的位置。有兩個字符串target 和pattern,字符串target 稱爲目標串,字符串pattern

原创 算法之旅——二分查找

        在介紹二分查找之前,先給大家講一個故事吧:一個女生揹着滿書包的書進入圖書館,叮叮叮,圖書館的報警器響了,女孩趕緊把書從書包倒出來,準備一本一本的驗證,看是哪本書有問題,一旁掃地的阿姨看不下去了,過來把書分成了兩挪,先檢查第

原创 算法之旅——歸併排序

 歸併排序是將兩個或兩個以上有序子序列歸併成一個有序數列的排序的排序算法,其時間複雜度O(n*log n)僅次於快速排序。在內排序中,通常採用的是2-路歸併,即每兩個子序列爲一組進行排序。歸併排序的原理是:設初始序列含有N個記錄,則可以看

原创 算法之旅——冒泡排序及選擇排序

  冒泡排序和選擇排序是排序算法中比較簡單的兩種算法。 冒泡排序的思想是:比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,針對所有的元素重複以上的步驟,這樣每次參與比較的元

原创 構造函數小結

          類中構造函數的作用是對對象初始化,它是一種特殊的成員函數,不需要用戶來調用它,而是在建立對象時自動執行。構造函數的名字必須與類名相同,它不具有任何類型,不返回任何值。構造函數的功能由用戶定義,用戶根據初始化的要求設計函

原创 算法之旅——快速排序算法

       快速排序(Quicksort)是一種平均時間複雜度爲O(n*log n)的高效排序法。其基本思想是:先設置一個比較值value,通常value爲數組的第一個數(當然也可以設爲其他的數,不過設第一個數方便些),通過一趟排序將