)利用readData()函數(shù)從datatxt中讀入不同規(guī)模的數(shù)據(jù)存入數(shù)組,編寫(xiě)基于數(shù)組的順序查找算法,測(cè)試數(shù)據(jù)量為1萬(wàn)、5萬(wàn)、10萬(wàn)、20萬(wàn)、30萬(wàn)、40萬(wàn)和50萬(wàn)時(shí)的數(shù)據(jù)查詢時(shí)間。
成都創(chuàng)新互聯(lián)公司為客戶提供專業(yè)的網(wǎng)站制作、成都網(wǎng)站建設(shè)、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開(kāi)發(fā). 服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站程序開(kāi)發(fā)、WEB系統(tǒng)開(kāi)發(fā)、微信二次開(kāi)發(fā)、成都做手機(jī)網(wǎng)站等網(wǎng)站方面業(yè)務(wù)。
順序搜索的方法是逐個(gè)比較,直至找出元素。二分搜索則利用了元素間的次序關(guān)系,可大大提高效率。二分法的基本思想是將n個(gè)元素分成個(gè)數(shù)大致相同的兩半,取a[n/2]與x作比較。如果x==a[n/2],則終止。
int Select(int* a,int len,int num) //num為我們要查找的數(shù),len為數(shù)組長(zhǎng)度,a為數(shù)組名 { int L = 0; //設(shè)置最左右2點(diǎn) int R = len-1;while(1)//多次查找。
void InsertSort(sq R)這個(gè)函數(shù)是按值傳遞參數(shù)的。換句話說(shuō),你的順序表在傳遞的時(shí)候被復(fù)制了一遍,然后這個(gè)函數(shù)收到的是一個(gè)副本,然后這個(gè)程序也許成功排序了這個(gè)副本,但是你原來(lái)的順序表并沒(méi)有改變。
編寫(xiě)查詢函數(shù)(分別編寫(xiě)函數(shù))函數(shù)功能是對(duì)整型數(shù)組或結(jié)構(gòu)體數(shù)組中的數(shù)據(jù)進(jìn)行查詢處理,并輸出操作結(jié)果。
{ int mid=(low+high)/2;if(key==ST.R[mid].key)return mid;else if(keyST.R[mid].key)high=mid-1;else low=mid+1;} return 0;} 自己總結(jié)了兩種方法,順序查找和折半查找,希望對(duì)你有所幫助。
1、可以使用fgets函數(shù)來(lái)實(shí)現(xiàn)。1 函數(shù)名:fgets 2 聲明形式:char *fgets(char *buf, int bufsize, FILE *stream);3 頭文件:stdio.h 4 功能及參數(shù)說(shuō)明:從stream中讀取一行數(shù)據(jù)存到buf中。
2、打開(kāi)文件 fopen(需要打開(kāi)的路徑, 打開(kāi)的模式);2 使用fgets函數(shù)讀取行;3 讀取完成后,fclose關(guān)閉文件。
3、fread()和fwrite()主要是用來(lái)讀寫(xiě)二進(jìn)制文件的。如果是文本文件建議使用fprintf()和fscanf()如果一次讀取一行,用fgets()最方便了。
4、char *fgets(char *buf, int bufsize, FILE *stream);參數(shù) *buf: 字符型指針,指向用來(lái)存儲(chǔ)所得數(shù)據(jù)的地址。bufsize: 整型數(shù)據(jù),指明存儲(chǔ)數(shù)據(jù)的大小。*stream: 文件結(jié)構(gòu)體指針,將要讀取的文件流。
fp = fopen(FILE_NAME, wb);fclose(fp);這樣一個(gè)名字為FILE_NAME值的二進(jìn)制文件就創(chuàng)建了。不過(guò)這樣創(chuàng)建的二進(jìn)制文件是空的,里面沒(méi)有數(shù)據(jù),從表象上看,就是文件大小為0。
if((fp=fopen(data.txt,wb))==NULL)//以只寫(xiě)方式創(chuàng)建一個(gè)二進(jìn)制文件,如果原文件存在,清空。如果==NULL,也就是失敗,就執(zhí)行下面的語(yǔ)句。
fpOut = fopen(data561txt, w); // 以創(chuàng)建方式(也叫寫(xiě)方式)打開(kāi)data561txt文件 fgets(str, 81, fpIn); // 從文件中讀取一行信息,保存到str數(shù)組中。
首先f(wàn)open是將文件的地址返回給fp,要是你連文件的位置在哪都不清楚,你還怎么能夠往你的文件中寫(xiě)如數(shù)據(jù)呢。
宏變量名 加了引號(hào)就不是宏了,而是字符串!改為:char mydata[80]=C:\\huliangkai\\Downloads\\student.txtf = fopen(mydata,w+);。。
讀寫(xiě)打開(kāi)一個(gè)二進(jìn)制文件,允許讀或在文件末追加數(shù)據(jù)。
1、應(yīng)該是自定義的函數(shù)吧,使用過(guò)的額庫(kù)函數(shù)里沒(méi)見(jiàn)過(guò)這個(gè)函數(shù)。
2、write_data(buf[3]+0x30)的意思是將數(shù)組buf中第四個(gè)元素(數(shù)組下標(biāo)從0開(kāi)始)轉(zhuǎn)換為字符(因?yàn)?x30是字符0的ASCII碼值),并賦值給write_data函數(shù)的形參。
3、是指針的意思,指?jìng)鬟^(guò)來(lái)的參數(shù)是指針類型 指針是變量地址的意思,程序中變量實(shí)質(zhì)包括四個(gè)部分:變量名,變量類型,變量值,以及內(nèi)存存儲(chǔ)的位置。
4、write_data() ;} close files() ;} 注意,在Kb&R格式中,開(kāi)括號(hào)總是與使用它的語(yǔ)句在同一行上,而閉括號(hào)總是在它所關(guān)閉的語(yǔ)句的下一行上,并且與該語(yǔ)句對(duì)齊。
5、DATA 在C語(yǔ)言在不代表什么,不過(guò)一般寫(xiě)代碼時(shí)用來(lái)當(dāng)存儲(chǔ)數(shù)據(jù)的一個(gè)變量或結(jié)構(gòu)體。當(dāng)他定義成int DATA 時(shí),就和int a是沒(méi)兩樣的。
6、x80在計(jì)算機(jī)內(nèi)部表示為1000 0000,漢字編碼區(qū)別于其他編碼的標(biāo)志就是漢字編碼的最高位是1,0xc0是指十六進(jìn)制。