第二週學習總結

2021-10-17 11:20:55 字數 1469 閱讀 5829

本週主要學習的是

1棧與佇列

2二分法

3位運算

首先要明白棧和佇列之間的區別,與棧相比佇列是先進先出的,先進去的就會先出來,而棧則與之不同,棧的進出順序與佇列不同並不是先進先出的有序關係,二十順序不定,候後進的可能先出。

一般線性表 棧

邏輯結構 一對一 一對一

儲存結構 順序表、鍊錶 順序棧、鏈棧

運算規則 任意位置插入和刪除 只能在表尾插入和刪除,先進後出

其次如何使得棧與佇列相轉化,當佇列轉換為棧時,可以通過使用兩個佇列來實現由佇列向棧的轉化,同樣的也可以通過用兩個棧來實現佇列的功能。
二分法可以分成整數的二分和浮點型的二分,兩者相比較下浮點型的二分更好理解,更為簡單而正數的二分其需要考慮的更為多,同時需要思考其邊界問題。

bool

check

(int mid)

intbsearch1

(int q,

int l,

int r)

return l;

}int

bsearch2

(int q,

int l,

int r)

return l;

}

以acwing的題目為例子

#include

#include

using

namespace std;

double n;

intmain()

printf

("%lf"

, l)

;return0;

}

關於位運算的知識點有

位運算的運算符號

1)按位取反(~)

2)按位與(&)

3)按位異或(^)

4)按位或(|)

5)按位左移(<

6) 按位右移(>>)

1字首和

字首和實則就是數列中的前n項的和

//輸入

for(

int i =

1; i <= n; i ++

)scanf

("%d"

,&a[i]);

//計算字首和

for(

int i =

1; i <= n; i ++

) s[i]

= s[i -1]

+ a[i]

;while

(m --

)

2差分

int ans,a,b;

ans=sum[b]

-sum[a-1]

;

第二週學習總結

在本週,學習了物件導向的三大特徵,封裝,多型,繼承 讓我感覺到學習 的不易,基礎實在是很重要,現記錄本週學習過程 現的問題以及解決注釋。1.構造方法與成員方法的區別 成員方法 一般實現對類中成員變數的操作,提供某些功能,有返回值型別,通過物件呼叫!構造方法 一般是給物件的資料進行初始化,沒有返回值,...

第二週學習總結

一 棧和佇列的簡介 先進後出 限定性操作 棧具有後進先出的特性,如果問題解決具有先進後出的天然特性的話,則求解的演算法就要使用棧。先進先出 限定性操作 佇列具有先進先出的特性,如果問題解決具有先進先出的特性的話,則求解的演算法就要使用佇列。二 對棧和佇列的認識 棧 限制在表的一端進行插入和刪除運算的...

第二週學習總結

貪心演算法的分類 類中的建構函式以及new和delete 感悟1 追求最大利潤 這種題目的一般會有利潤和時間兩個變數 解決思想一般是兩種,第一種是求出最大的平均利潤,第二種是按 排序追求最大利潤。在本週所做的b題屬於第二種,每個商品都有最晚賣出時間與利潤,每天只能賣乙個商品,而我在這個題中一開沒讀懂...