C 及資料結構複習筆記(三)(陣列)

2021-08-21 07:44:17 字數 2599 閱讀 7017

格式:型別識別符號 陣列名[常量表示式];

inta[10];  //陣列名為a,有10個元素

陣列的下標是從0開始的,a[10]的10個元素非別是a[0],a[1],…a[9]。且常量表示式中不能包含變數。

只能逐個引用陣列元素的值而不能一次引用整個陣列中的全部元素的值。

初始化:

int a[10]=;

int a[10]=;//後面5個元素的值預設為0

int a=;//在對全部陣列元素賦值時,可以不指定陣列長度

氣泡排序

直接選擇排序

氣泡排序是每次將亂序中的最大數字通過兩兩比較方式向後移動,直到序列有序為止。該演算法一共執行n次,每次執行n-i次比較。

選擇排序簡單地說就是每次找到序列中的最小值,然後將該值與有序序列的第乙個元素對換位置,然後在剩下的序列中找到最小值,再與第二個元素對換位置。

演算法複雜度:o(n^2)

空間複雜度:o(1)

演算法複雜度:o(n^2)

空間複雜度:o(1)

#includeusing namespace std;

int main()

cout<<」the sorted numbers:」<

#includeusing namespace std;

int main()

,,};//第i個花括號內的資料賦值給第i行元素

int a[3][4]=,,};//相當於只給第一列元素賦值

int a[4]=;//可以省略第一維長度,但是第二維不能省略

例 1.5.1 見選擇法排序,給10個數從小大到排序,且使用陣列名作為函式引數。

形參不能宣告為普通變數,上例中voidselect_sort(int array, int n);是錯誤的,[ ]內的值並無實際作用,只是用來說明array是乙個一維陣列名。且陣列名代表陣列元素的首位址,並不代表陣列中的全部元素。對於二維陣列來說,a[3][4]中a代表其首元素(第一行)的起始位址。

用於存放字元資料的陣列是字元陣列,其中每乙個元素存放乙個字元。

初始化:

char c[10]=;

char c=;

若初值個數小於陣列長度,則多餘的元素自動定為空字元(即』\0』)。

char str[12]=;

字元陣列的輸入輸出可以住個字元進行也可以一次將整個字串輸入輸出。

char str[20];

cin>>str;

cout《字串連線函式strcat

strcat (char , const char);

將第二個字元陣列中的字串連線到前面字元陣列的字串的後面。第二個字元陣列被指定為const,以保證該陣列中的內容不會在函式呼叫期間修改。

字串複製函式strcpy

strcpy (char ,const char)

將第二個字元陣列中的字串複製到第乙個字元陣列中去,將第乙個字元陣列中的相應字元覆蓋。第二個引數也可以是字串常量。只能呼叫該函式將字串賦值給乙個字元陣列,而不能用賦值語句。

str=」china」;

str1=str2;

字串比較函式strcmp

strcmp (const char,const char)

由於2個字串僅作比較,而不改變內容,因此2個引數均宣告為const。若2個字串相等,返回0。

字串長度函式strlen

strlen(const char)

測試字串的實際長度,不包括』\0』。

c++提供了一種新的資料型別,字串變數(string),用乙個名字代表乙個字串行。

初始化:

#include//使用string類功能時,需要包含string標頭檔案

string string1;//定義string1為字串變數

string1=」canada」;

string string2=」china」;//定義string2時對其初始化

string2=string1;//可以把乙個字串變數賦值給另乙個字串變數,區別於字元陣列的strcpy。

可以定義字串陣列,陣列元素為字串:

string name[5]=;//每乙個字串元素不包括』\0』
可以直接用==,>,<,!=,>=,<=等關係運算子直接對字串進行比較。

例 1.5.2乙個班有n個學生,需要把每個學生的簡單材料(姓名和學好)輸入計算機儲存。然後可以通過輸入某一學生的姓名查詢其相關資料。要求:當輸入乙個姓名後,程式就查詢該班有無此學生,如有則輸出姓名和學好,否則輸出「本班查無此人」。

#include#includeusing namespace std;

string name[50],num[50];//定義2個字串陣列,分別存放name和num,且它們是全域性變數

int n;//實際學生數

int main()

void input_data()

}void search(string find_name)

if (flag==false) cout<<」can』t find this name」;

}

資料結構複習筆記

資料 資料是資訊的載體,是描述客觀事物屬性的數 字元及所有能輸入到計算機中並被電腦程式識別和處理的符號的集合。資料是電腦程式加工的原料。資料元素 是資料的基本單位,通常作為乙個整體進行考慮和處理。資料項 乙個資料元素可由若干資料項組成,資料項是構成資料元素的不可分割的最小單位。資料物件 是具有相同性...

複習資料結構及演算法

複習資料結構與演算法的一些知識收藏 十大經典排序演算法 時間和空間複雜度 演算法 algorithm 是指用來運算元據 解決程式問題的一組方法。對於同乙個問題,使用不同的演算法,也許最終得到的結果是一樣的,但在過程中消耗的資源和時間卻會有很大的區別。那麼我們應該如何去衡量不同演算法之間的優劣呢?主要...

資料結構期末複習(三)

1.判斷題 在雜湊表中,所謂同義詞就是被不同雜湊函式對映到同一位址的兩個元素。f 在雜湊中,函式 插入 和 查詢 具有同樣的時間複雜度。t 解析 都是o 1 有n個數存放在一維陣列a 1 n 中,在進行順序查詢時,這n個數的排列有序或無序其平均查詢長度不同。f 解析 平均查詢長度是固定的。在索引順序...