今天開(kāi)始正式日常做機(jī)試訓(xùn)練(參考書(shū):計(jì)算機(jī)考研--機(jī)試指南)記錄一些問(wèn)題/解決辦法/知識(shí)回顧/易錯(cuò)點(diǎn)/心得之類(lèi)的。
基礎(chǔ):
1. #include<stdio.h>
2. while(scanf("%d",&n)!=EOF)? //scanf函數(shù)是有返回值的,返回被輸入函數(shù)成功賦值的變量個(gè)數(shù),此例中為1。若采用gets()方法讀入字符串,可用while(gets())來(lái)判斷輸入是否結(jié)束 (注意gets()中不能為string類(lèi)型 只能為char[]類(lèi)型
3. printf("\n");
4. 復(fù)雜度:例:1s的運(yùn)行時(shí)限,復(fù)雜度不能超過(guò)1千萬(wàn),若算法時(shí)間復(fù)雜度為O(n2),則n不能大于3000; 32MB的內(nèi)存空間,32*2^20(3千萬(wàn)級(jí)),int型為4個(gè)字節(jié),即4B;一般為空間換時(shí)間。
5. using namespace std; //使用標(biāo)準(zhǔn)命名空間
排序:
1. 冒泡排序 時(shí)間復(fù)雜度O(n2) 空間復(fù)雜度O(n) 注意最大的總在最右,所以雙重循環(huán),內(nèi)層循環(huán)終止條件為j<n-1-i
2. 快速排序 時(shí)間復(fù)雜度O(nlogn) C++庫(kù)函數(shù)sort(起始地址,結(jié)束地址,cmp) 需要頭文件algorithm 定序規(guī)則:升序排列、只利用小于運(yùn)算符排序 cmp為自己定義的比較函數(shù) 返回值為bool類(lèi)型?(C中為qsort())?
做題細(xì)節(jié):
1. struct結(jié)構(gòu)初始化方法:1)struct E{}buf[1000];? 2)struct E{}; E buf[1000]; (再補(bǔ)充)
2. char[]型 有結(jié)束符'\0' 占1個(gè)空間 長(zhǎng)度為100的字符串 需定義為char a[101];
3. ==不能用來(lái)判斷字符串是否相等,只能判斷單個(gè)字符;應(yīng)該用strcmp(a,b)來(lái)判斷 =0為相等,>0為a>b, <0為a<b;需要頭文件string.h
4. 重載運(yùn)算符:bool operator < (const E &b) const{} 或 bool operator < (const E&a,const E&b){} 第二個(gè)const不能隨便用(在主函數(shù)外定義重載運(yùn)算符用const報(bào)錯(cuò):non-member function cannot have cv-qualifier)(在struct里不用const報(bào)錯(cuò))(?)