演算法解讀 s變數和陣列

2022-04-01 23:04:46 字數 2663 閱讀 4432

演算法是解決問題並獲得結果的過程。在這個處理過程中,問題以資料的形式輸入,結果同樣以資料的形式輸出,在演算法的處理過程中,也需要各種臨時的資料。

資料是什麼?

資料是多種不同資訊的表現。

以料理中的食譜為例,下面的材料即為演算法——食譜的資料:

豬肉120g, 洋蔥1/2個, 胡蘿蔔1/2個, 土豆2個, 糖一大勺, 料酒2大勺……

電腦程式中的演算法也是如此,為了解決問題需要使用各種資料:

1. 求最大公約數的演算法:

a. 求最大公約數的兩個整數

b. 求出的最大公約數(整數)

2. 一組資料的排序演算法:

a. 要排序的一組資料

b. 資料的個數

c. 排好序的一組結果資料

在乙個演算法的思考過程中,我們需要很多資訊,所有這些資訊都是資料,都會協助問題解決的流程。因此,所有的演算法是」處理「和」資料「的相互結合。

資料型別的理解

資料代表各種資訊,被視為資訊的資料有很多態別,根據不同種類分為不同的組,如食譜資料的分組:

計算機程式設計的演算法中需要處理的資料也分為不同的組,這樣的分組就稱為資料型別:

整數型:0, 1, 100, -100

浮點型:1.1, 3.1415926, - 2.98

字元型:a, b, x, 我, 你

字串型:abc, china, 演算法

布林型:true, false

值的理解

資料是各種資訊的表現形式,而資料的具體表現就是值。

在烹飪的食譜中, 豬肉、醬油、胡椒等是在做料理時使用的配料和調味料,也可以說是表示」物「的」值「。而100g, 1小勺,200ml等式表示分量,時間等」數「的」值「。

在演算法中,我們用數值、文字等描述」值「, 如整數型或浮點型的值:0, 1, 1.1, 3.14。字元型和字串的值,一般用單引號或雙引號括起字元或字串:'a', 'b', "china".

括起來表示是為了與一般的數值區別開,比如: 10 和 "10",這兩個分別是整數型值和字串的值。

變數的理解

在演算法中,當我們對一些資料進行操作時,需要儲存這些資料的空間,這些空間稱為」變數「。比如,我們做檔案整理的時候,需要把所有檔案分類到不同的盒子裡進行管理,在這裡,檔案就是資料,存放檔案的盒子就是所謂的變數。也就是說,變數起到了盒子的作用,我們可以移動各種資料並存入盒子裡。

在這裡需要注意一點,在整理檔案時,我們可以把多個種類的檔案放入乙個盒子裡,但變數,一般情況下,只能存入一種型別的資料。同時,在已經存入資料的變數中輸入另乙個值時,原先存入的資料將消失。比如宣告乙個變數: int i; 此時,盒子已經搬出來了,但盒子裡沒有任何資料,接著我們設定: i = 2; 於是資料2被存入了盒子 i 裡,我們可以繼續設定 i 的值: i = 3; 此時,3存入了盒子裡,而資料2已經消失了。

值得一提的是,在我們宣告乙個變數 int i;這個步驟中,i 的狀態是不放入任何資料。

變數的區分

演算法中,我們經常使用多個變數,為了區分不同的變數並方便認識變數的用途,我們需要使用變數名來為裝資料的箱子取名。

變數名要唯一。

賦值語句

變數的值的代入是通過變數指定的賦值語句完成的,賦值語句的右邊也可以是使用運算符號的公式,如:i = 10; j = 3 + 5;

賦值語句右邊可能是個變數名,此時的變數名代表儲存在此變數中的值,如 j = i + 5; 這裡的變數名 i 表示儲存在變數 i 中的值,如果 i = 3,那麼j = i + 5就相當於 j = 3 + 5;

陣列

演算法中,陣列用來儲存大量資料。例如:儲存全校學生的測試結果(分數), 或者所有註冊會員的名字等。

陣列的原則:同一陣列中的所有資料必須是同型別的值。

陣列的理解:它是把很多變數線性排列的結果,即,陣列是變數的箱子"無縫隙"地排列在一條直線上。

與變數有變數名作為標記一樣,陣列也有陣列名,陣列名是指定某乙個目標陣列而給定的唯一名稱。

構成陣列的」箱子「的個數稱為陣列元素數,可以用編號進行管理,且編號預設從0開始。

二維陣列

陣列中儲存大量的關聯資料。其中,在一條直線上排列的,像儲物櫃的陣列稱為一維陣列,另外,也有把變數像縱向和橫向無縫隙排列的矩形陣列,它稱為二維陣列。甚至還有向水平、垂直、深度三個方向無縫隙排列的立方體陣列,稱為三維陣列……

二維陣列被廣泛地使用在行和列的大量資料的管理中,如:圍棋遊戲中黑白子的管理

如果每一層的房間數排列一樣,那麼,由n層組成的賓館房間構造也可以認為是二維陣列。

總之,二維陣列必須是由變數的」箱子「無縫隙地排列成長方形的結果:

字串

在演算法中,字元和字串的處理是比較特殊的。

對於字元,計算機內部是通過數字(或字元編碼)表示的。例如:字元'a'為65, 字元 'b' 為66...

字串是上述字元編碼對應的字元連續的表現,因此,字串是字元無縫隙線性排列的資訊,或者可以定義為:字串是每個元素儲存字元的字元型陣列,例如:字串"abc",可以看成是儲存字元'a', 'b', 'c'的陣列。

指標變數和陣列

int arr 2 int arr int i arr 0 arr 1 23 char str abc 字元內容儲存在堆上 char str1 字元內容儲存在棧上第一種情況 字元內容會儲存在堆上,並在棧裡儲存str指標變數,變數值為字元在堆上的首位址。第二種情況 字元內容會儲存在棧上,但是不會有額外...

gdb顯示變數 和 陣列

程式變數 檢視檔案中某變數的值 file variable function variable 可以通過這種形式指定你所想檢視的變數,是哪個檔案中的或是哪個函式中的。例如,檢視檔案f2.c中的全域性變數x的值 gdb p f2.c x 檢視陣列的值 有時候,你需要檢視一段連續的記憶體空間的值。比如陣...

PowerShell變數 常量和陣列

變數 power shell是一種弱型別語言,所謂弱型別語言是指不用區分資料型別,弱型別的特徵決定了powershell使用變數的資料型別直接賦值,只需要在變數名前加上 變 量賦值公 式 變數賦值公式 變數賦值 公式 變數名 值 環境變數 system.environment setenvironm...