原创 鄰居交換——冒泡排序

       相信大家看了上篇博客瞭解了我們簡化版的桶排序有一定的侷限性,對於數字大的佔用空間嚴重並且無法處理小數,所以這節課給大家講比桶排序的實用性高一點的冒泡排序。        首先冒泡排序的核心思想就是比較相鄰的兩個元素,順序錯誤

原创 劍指offer面試題:打印1到最大的n位數

題目描述:輸入數字n,按順序打印從1到最大的n位十進制數 例如:輸入3,//最大的三位數爲999,            輸出:打印出1,2,3,4.。。。。999。   基礎入門解法:雖然可以解出本題,但是當輸入的n很大時,超出long

原创 劍指offer面試題:二進制中1的個數(位運算)

題目:請實現一個函數,輸入一個整數,輸出該二進制中表示的1的個數。例如9的二進制是1001,二進制中有2個1,所以輸出2。 思路:統計二進制中1的個數實際上就是進行位運算。 解法一:分別判斷最低位,次低位,次次低位。。。是不是1。然後統計

原创 劍指offer面試題:兩個棧實現隊列

       題目描述:兩個棧實現隊列,給定了隊列聲明,實現函數appendtail和deletehead。分別爲在隊尾插入節點和在隊頭刪除節點。        解題思路:棧的特點是先進後出,而隊列爲先進先出,我們可以用兩次先進後出得到先

原创 劍指offer面試題:數值的整數次方

  問題描述:實現一個函數double power(double base,int exponent),不得使用庫函數。不需要考慮大數問題.   思路:利用循環之間解,本題的難點在於需要考慮的全面,比如輸入的指數是否爲正數。負數的負指數冪

原创 劍指offer面試題:兩種方法解決斐波那契數列

題目:寫一個函數,輸入n,求斐波那契數列的第n項。(1,1,2,3,5,8) 思路:斐波那契數列作爲數學歷史上很經典的存在,讓我們用代碼快速解出他的第n項。   我們的第一種方法是遞歸,這種方法解斐波那契數列優點就是很容易理解,但是缺點就

原创 劍指offer面試題:重建二叉樹(註釋很多)

       題目要求:輸入二叉樹前序遍歷和中序遍歷的結果,假設輸入的數字都不包含重複數字,構建出滿足序列的二叉樹。        樹結構是我一直很頭疼的一部分,感覺他是數據結構中最繁瑣的了,如果我們要想學會這部分首先大家一定要明白樹的結

原创 劍指offer面試題:從未到頭打印鏈表(用棧實現)

題目:輸入一個鏈表的頭節點,從尾到頭反過來打印每個節點的值。       相信大家看到這道題的第一反應就是把這個鏈表整個給逆置過來。然後從頭到尾遍歷打印吧。當然這樣的方法可以幫助我們解決這道題,但是有個缺點就是這樣做改變了原本鏈表的結構,

原创 劍指offer面試題之空格替換理解

題目:實現一個函數,把每個空格替換成%20,例如輸入we are happy,輸出we%20are%20happy。       解題思路一:我相信大家和我一樣看到這道題的第一印象應該就是從頭遍歷數組,遇到空格就是將後面的字符向後移動,然

原创 鏈表的初步認識以及基本操作

        記得上篇順序表的博客曾經提到過鏈表,鏈表和順序表共同組成線性表,鏈表邏輯相鄰,物理上不相鄰,順序表則是邏輯和物理都相鄰,可以簡單的理解爲順序表中的數據相鄰同時保存數據的地址也相鄰,但鏈表僅僅是數據相鄰,但數據的地址不相鄰。

原创 struct結構體的初步認識

        結構體的作用:         在我們解決生活中的很多實際問題時我們會遇到很多不同的數據類型組成一個個體,比如說我們在構造學生管理系統時需要把一個學生的信息作爲一個個體,這些信息有學號,姓名,成績等信息,這時候我們用數組是

原创 關於遞歸的入門

 遞歸簡單來說就是自己調用自己   遞歸要素0:前進(規模縮小)邊界條件,返回段。 例如:a比b大兩歲,b比c大兩歲,c比d大兩歲,d比e大兩歲,e是10歲,a是幾歲? 這個題可以用遞歸寫 int age(int n) {  int te

原创 指針入門

對於初學計算機的同學來說指針應該算是一個小難點,今天給大家介紹一下指針指針:指針是一個用來指示一個內存地址的計算機語言的變量或中央處理器中的寄存器,簡單來說我們完全可以把它當做地址來理解那麼,如何定義一個指針呢,就是比平時的變量定義前多加

原创 程序入門調試

1.先設置斷點  在調試代碼之前要先設置一個斷點,否則調試無法進行;ps:設置斷點的方法找到自己要測試的那一行代碼,按f9或者也可直接用鼠標點擊代碼前的空白處如下圖所示;2.熟悉常用的命令常用的命令符合有四個,分別爲啓動調試,終止調試,逐