原创 C++基礎筆記之一:特殊字符的輸入

C++編程時,有時候會遇到特殊的輸入與輸出。 1.含空白字符的輸入     e.g. 輸入X 8,將X字符賦值給變量a,空白字符賦值給變量b,數字8賦值給變量c。            輸出8 X     分析:只考慮輸入與輸出,可以很

原创 C++基礎筆記之三:冒泡排序

C++經典算法:冒泡排序 基本思路: 1)比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 2)對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。 3)針對所有的元素重複以

原创 n個人圍成一圈報數出列

題目:n個人圍成一圈,並依次編號爲1,2,3,……,n,並以m數順序報數,報到m時,該人出列,然後從出列的下一位開始重新報數,以此類推,編寫代碼依次輸出出列人編號的順序以及最後留在圈內的人的編號。 思路:可以使用結構體來爲每個人編號和確

原创 C++三大特性:封裝、繼承、多態

1.面向對象面向對象的三大特性:封裝、繼承、多態。       類和對象:類由數據成員和成員函數構成,代表抽象派,玩的就是概念,某種意義上來說是一種行爲藝術;而對象是具體的,比如說過年回家和老爹下中國象棋,發現棋盤上少了一對‘象’,那是你

原创 C++基礎筆記之五:快速排序

C++經典算法:快速排序 基本思路:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然後再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。

原创 進制的轉換

題目:輸入一個任意進制的數,將這個數用其他進制表示出來。 思路:任意進制的轉換種類有很多種,分類轉換是不明智的選擇。可以先將數統一轉換成十進制,然後使用itoa函數講十進制數轉換成其他進制的數。 代碼: 輸出結果:      

原创 括號匹配算法

題目:有一段字符串,包含"("和")"、"["和"]"、"{"和"}"中的一種或者多種,這三種括號出現次序不定,可隨意嵌套。編寫代碼判斷三種括號是否正確匹配。 思路一(棧的思想):括號匹配是運用棧的經典思想。在算法中設置一個空棧,每次讀

原创 C++基礎筆記之四:插入排序

C++經典算法:插入排序 基本思路:輸入一個元素,檢查數組列表中的每個元素,將其插入到一個已經排好序的數列中的適當位置,使數列依然有序,當最後一個元素放入合適位置時,該數組排序完畢。 頭文件與主函數如下:               

原创 C++基礎筆記之八:二分查找

C++經典查找算法:二分查找 基本思想:對排好序的數組,每次取這個數和數組中間的數進行比較。 (遞歸方式) 頭文件與主函數代碼如下:       二分查找代碼如下:    (非遞歸方式) 頭文件與主函數代碼如下:       二分查找代碼

原创 最大連續子序列之和

題目:給出一個數組,該數組有多個不同長度的連續子序列,編寫代碼計算出最大連續子序列之和,並表示出該最大連續子序列。例如:有數組:2 6 -8 4 10 6 -3 -2 4 1,則最大連續子序列之和爲20,最大連續子序列爲2 6 -8 4

原创 C++基礎筆記之七:順序查找

C++經典查找算法:順序查找 基本思想:從表中第一個記錄開始,逐個進行記錄的關鍵字和給定值的比較,若某個記錄的關鍵字和給定值比較相等,則查找成功,找到所查記錄;反之,若直至最後一個記錄,其關鍵字和給定值比較都不等,則表明表中沒有所查記錄,

原创 C++基礎筆記之九:運算符的優先級

C++中運算符的優先級不同,決定着運算順序不同,得到的相應結果也會有所不同。 以下是C++中常用運算符的優先級列表: e.g.  !a && b || x < y && c 運算順序如下:         (1)  !a      

原创 C++基礎筆記之二:選擇排序

C++經典算法:選擇排序 基本思路:每一趟從待排序的數據元素中選出最小(或最大)的一個元素,順序放在已排好序的數列的最後,直到全部待排序的數據元素排完。 頭文件與主函數如下:                      選擇排序子函數:

原创 C++基礎筆記之六:幾種常用排序算法的比較

常用排序算法: 1)選擇排序 2)冒泡排序 3)插入排序 4)快速排序 (詳細代碼與基本思想見本博客相應文章) 選擇排序與冒泡排序很相似,主要區別: 冒泡排序是每一次都有可能要交換位置,比較、移動次數多;選擇排序是在比較時記下當前