【這是一個還沒有被證實是否有效的小白修煉手冊】數據結構入門第一課基本概念

數據結構是計算機中的存儲。組織數據的方式。 通常情況下,精心選擇的數據結構可以帶來,最優效率的算法

Q1:如何在書架上擺放圖書?
我家裏的書都是按照顏色大小擺放的,或者按照小學初中大學,還有亂擺的。哦,正常情況應該是按照圖書館的那種分類形式或者首字母大小寫吧。
受教了,這道題是要質疑題目本身的,它本身提問的不是很科學,沒有告訴我們書架是長得什麼樣子?
當我們提及到數據是怎樣組織的時候,這和數據的規模是有關係的。

方法 如何放書 如何查找書
隨便放 容易 (規模大的時候)困難,從頭到尾遍歷
書名拼音字母順序 放書A開頭的之後的書要後挪 二分查找(查找範圍縮小一半)
按分類 先定分類再插入書 先定類別再二分查找

思考:按照分類的方法放書,劃分給每一個類別的空間如何劃分?
我們要分類分多少個合適?

對中等規模、大規模的圖書擺放,你有什麼更好的建議?
提出這個問題,實際上是想讓大家思考,在考慮大規模數據存儲的時候會遇到什麼問題,以及如何根據功能(也就是關聯的算法,最常見的就是插入、查找、刪除)需要設計存儲方式。

在這裏,我的思考是:大規模的圖書擺放設立多級別終端多次查找,每個圖書有一個優先級的標籤,(所在區域,所屬樓層,所屬類別之類的)比如先在門口第一次查找查找某圖書,顯示它在A區,然後來到A區域的查找終端上繼續找尋這本書,它會指引你來到相應的樓層,然後在樓層的專屬終端上再按照這節課講的方法來查找。反正人總是要走動的,那麼我們在尋找書的這一路徑上一步一步引導,應該沒有什麼毛病吧?哈哈哈,歡迎各路槓精,小白,大神評論區指教
在這裏插入圖片描述
Q2:寫程序實現一個函數PrintN,使得輸入一個正整數N後,能順序打印從1到N的所有正整數。
第一感覺,我也想用FOR LOOP,

void PrintN(int N){
	int i;
	for (i = 1;i++;i<N)
		Printf("%d\n",N);}
	return;
}

但是老師又給了另外一種遞歸的方法,嗯,一直都沒有注意過。

void PrintN(int N){
	if(N){
		PrintN(N-1);
		Printf("%d\n",N);
	}
	return;
}

遞歸的程序對空間的佔用很恐怖,解決問題方法的效率與空間的利用效率是有關的。

曬一下PrintN在你的機器上運行的結果?
我的代碼如下
#include <iostream>
#include <time.h>
void PrintN_loop(int N){
	int i;
	for (i = 1;i++;i<N){
		std::cout<<i<<std::endl;
    }
	return;
}
void PrintN_recursion(int N){
	if(N){
		PrintN_recursion(N-1);
		std::cout<<N<<std::endl;
	}
	return;
}

int main()
{
	int N=100;
    clock_t t1 = clock();
    
        PrintN_loop(N);
    clock_t t2 = clock();
    std::cout<<"time: "<<t2-t1<<std::endl;
} 

在終端中運行

g++ -o testcpp test.cpp

沒有編譯問題則會生成可執行文件。

./testcpp

啊啊啊,爲什麼結果是那麼的奇怪?掌握一下C++和time.h的用法回頭重新算
C++ time.h 庫詳解
在這裏插入圖片描述clock( )捕捉程序從開始到目前的時鐘打點,
Q3:求解給定多項式在x點處的值。
f(x)=a0+a1x++an1xn1+anxnf(x)=a_{0}+a_{1} x+\cdots+a_{n-1} x^{n-1}+a_{n} x^{n}
直接FOR LOOP逐個項計算不如我們先用結合率來試試
f(x)=a0+x(a1+x((an1+x(an))))f(x)=a_{0}+x\left(a_{1}+x\left(\cdots\left(a_{n-1}+x\left(a_{n}\right)\right) \cdots\right)\right)

線性結構,樹,圖,邏輯結構
數組,鏈表,物理存儲結構
抽象數據類型到底是什麼東西?
抽象兩個字代表我們並不關心它的值具體是什麼,描述操作集時也不會考慮具體的實現方法。

抽象有什麼好處?
理解一下抽象的好處,拙見如下:宏觀把握先不關心細節,有一種整合的美吧,有點像是形而上學的方法論,普適性比較好。

今日寫文背景音樂《只只》,段老狗加油!!!

別的小孩有的 我們只只也要有

雨下過後的屋檐,貓坐在路邊,
你吹着風,不說話就很甜。
微光裏樹影重疊,驟雨間溼冷麻雀,
我杜撰許多離別,勇敢而堅決!
十月過後的天空,醉酒般暈紅,
一半是春夏,一半是秋冬。
光影飄浮過山峯,留下關於你的夢,
我在這寫下重逢,貧乏而心動!
想和你看着星空,只談夜色與微風,
不關心明天,不在乎所有,
只對你有獨鍾。
是時候和你決定,即便匆忙去遠行,
在山野間追風,去看遍世界,
黃昏與黎明。
路過轉角的花店,你坐在窗前,
我騎着單車,載着你走很遠。
星光透映着長街,無意間夜色傾斜。
在紙上寫下一頁,深沉而濃烈!
想和你看着星空,只談夜色與微風,
不關心明天,不在乎所有,
只對你有獨鍾。
是時候和你決定,即便匆忙去遠行,
在山野間追風,去看遍世界,
黃昏與黎明.
任時間過往匆匆,輕易就遠去無聲,
在人潮之中,想要擁抱你,哪怕片刻永恆,
我已經偷偷決定,把愛你的事澄清,
在百念之中,你依然是我,未尋得的舊夢。
十月過後的天空,光影在流動。
一半是春夏,一半是秋冬。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章