我一個同學(xué)總結(jié)的非常之經(jīng)典重要實現(xiàn)函數(shù)_第1頁
我一個同學(xué)總結(jié)的非常之經(jīng)典重要實現(xiàn)函數(shù)_第2頁
我一個同學(xué)總結(jié)的非常之經(jīng)典重要實現(xiàn)函數(shù)_第3頁
我一個同學(xué)總結(jié)的非常之經(jīng)典重要實現(xiàn)函數(shù)_第4頁
我一個同學(xué)總結(jié)的非常之經(jīng)典重要實現(xiàn)函數(shù)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

{charstr[5],max;intI;{ifstrcmp(str[0],str[I])<0;else}}#include<stdio.h>intmain(){chara[] b=atoi(a);return0;}#include<stdio.h>#include<string.h>intmain(){chara[]="12345";intb=strlen(a);inti,j=0,k=1;for(i=b-1;i>=0;i--j+=(a[i]-'0')*k;}#include<stdio.h>#include<string.h>intmain(){inta=12345,i=0;intc=a;charfor(i=if(a==arr[i]='\0';for(i;i>=0;i--arr[i]=c%10+'0';}return0;}1、intstrcmp(constchar*str1,constchar1,str1大于0,str1等于-1,str1小于inta_strcmp(constchar*str1,constchar{{return(*str1-*str2)>0?1:-1;}return-}

return2、char*strcat(char*str1,constchar把str2(包括'\0')拷貝到str1str1。其中終止原str1的'\0'str2char*scat(char*str1,constchar*str2){char*str=str1;}*str=*str2;}*str='\0';return}3、void*memmove(void*to,constvoid*from,size_t當(dāng)發(fā)生對象時,函數(shù)仍能正確執(zhí)行void*memmove(void*dest,constvoid*src,size_t{assert((dest!=NULL)&&(src!=NULL));char*tmp_dest=(char*)dest;charif(tmp_dest<=tmp_src||tmp_src+count<tmp_destwhile(count--}{//反向*tmp_dest--=*tmp_src--}return}memmove考慮通常就是三種情況一是目標(biāo)區(qū)域的首地址落在源區(qū)域內(nèi)二是目標(biāo)域的尾地址落在源區(qū)域內(nèi);三是兩個區(qū)域完全。memmove方向的方法從源區(qū)域的尾地址開始這樣就能避免出現(xiàn)已的數(shù)據(jù)被后續(xù)覆的錯誤。4、intatoi(constchar把字符串strintintatoi(char*str){intnum,n,i;n=num=intlen=strlen(str);for(i=len-1;i>=0;i--num+=(str[i]-'0')*n;}return}把一個字符串到另一個字符串里intscopy(char*str1,constchar*str2){*str1=*str2;}}#include#include2void345678927inti,j;charstr[100];charprintf("input{if(str[i]!='{cpy[j++]=str[i];}{while(str[i]=='')//這個while循環(huán)是關(guān)}}printf("copying}#includestdio.h標(biāo)準(zhǔn)頭文intint{intintflag1while((c=getchar())!={if((c!='')||(flag!={flag=(c!='}}return}func(){inti,j,temp;inta[10];scanf("%d,",&a[i]); for(i=0;i<10-{if(a[i]>a[i+1]) }}}printf("%d,",a[i]);}structNode{IntNodeNode*insertList(Node*head,intelem,int{Node*s,inti=position-1;s=head;/*positionwhile(i>0&&s->next!={s=s->next;}if(i> {printf("Positioniswrong!\n");returnhead;}p=(Node*)malloc(sizeof(Node));p->data=elem;p->next=s->next;s->next=p;return}Node*ListDelete(Node*head,inti{// 結(jié)點(diǎn)的單鏈線性表L中,刪除第i個元素,并由e返回其intNodewhile(p->next&&j<i-1)//尋找第ip{}if(!p->next||j>i-1)return-q=p->next;p->next=q-return}2312274420voidbubble(intdata[],size_tsize){for(size_ti=0;i<size-1;i++){boolordered=true;for(size_tj=0;j<size-1-i;j++)if(data[j+1]<data[j]){inttemp=data[j];data[j]=data[j+1];data[j+1]=temp;ordered=false;}if(ordered)}}1220232744}}若該元素小于等于新元素,則將新元素置于該元后2,O(N^2),冒泡排序是值的交換,而插入排序是值的移voidinsertin(intdata[],intnu){inti=1;for(i;i<inttmp=data[i],j;if(tmp<data[j-1])data[j]=data[j-1];}If(j==Data[j]=}}1220232744voidselect(int*data,intnu){inti,j;for(i=0;i<nu-1;i++){intmin=i;for(j=i+1;j<nu;j++){if(data[min]>data[j])min=}inttem=data[min];}}02090p010080p06090ipji,j,p{{D(i)<P:D(i)>P:D(i)->D(p),p-{D(j)>P:j--D(j)<P:D(j)->D(p),p-i=j=p:P-練習(xí):實現(xiàn)一個類似標(biāo)Cqsortvoidquick(intdata[],size_tleft,size_tright){size_tp=(left+right)/2;intpivot=for(size_ti=left,j=right;i<j;){while(!(i>=p||pivot<data[i]))if(i<p)data[p]=data[i];p=i;}while(!(j<=p||data[j]<pivot))if(j>p)data[p]=data[j];p=j;}}data[p]=pivot;if(p-left>quick(data,left,p-1);if(right-p>1)quick(data,p+1,}3)將另一個序列剩余的元素直接到合并序列尾部評價:平均時間復(fù)雜度O(logN),數(shù)據(jù)必須有序。abaccdeff->bintbinary(intdata[],intleft,intright,intkey){if(left>right)return-intmid=(left+right)/2;if(key<data[mid])returnbinary(data,left,mid-1,key);if(key>returnbinary(data,mid+1,right,key);return}//排序算法#include<iostream>usingnamespacevoidbubble(intdata[],size_tsize){for(size_ti=0;i<size-1;i++){boolordered=for(size_tj=0;j<size-1-i;j++)if(data[j+1]<data[j]){inttemp=data[j];data[j]=data[j+1];data[j+1]=temp;ordered=false;}if(ordered)}}voidinsert(intdata[],size_tsize){for(inti=1;i<size;i++){inttemp=data[i],for(j=i;j>0&&temp<data[j-1];j--)data[j]=data[j-1];if(j!=data[j]=}}voidselect(intdata[],size_tsize){for(size_ti=0;i<size-1;i++){size_tmin=for(size_tj=i+1;j<size;j++)if(data[j]<data[min])min=j;if(min!=i)inttemp=data[i];data[i]=data[min];data[min]=temp;}}}voidquick(intdata[],size_tleft,size_tright){size_tp=(left+right)/2;intpivot=for(size_ti=left,j=right;i<j;){while(!(i>=p||pivot<data[i]))if(i<p)data[p]=data[i];p=i;}while(!(j<=p||data[j]<pivot))if(j>p)data[p]=data[j];p=j;}}data[p]=if(p-left>quick(data,left,p-1);if(right-p>1)quick(data,p+1,}voidmerge(intdata1[],size_tsize1,intdata2[],size_tsize2,intdata3[]){inti=0,j=0,k=0;for(;;)if(i<size1&&j<size2)if(data1[i]<=data2[j])data3[k++]=data1[i++];data3[k++]=data2[j++];elseif(i<size1)data3[k++]=data1[i++];elseif(j<size2)data3[k++]=data2[j++];}voidmerge(intdata[],size_tleft,size_tmid,size_tright){int*data3=newint[right-left+merge(data+left,mid-left+1,data+mid+1,right-mid,data3);for(size_ti=0;i<right-left+1;i++)data[i+left]=data3[i];delete[]}voidmerge_sort(intdata[],size_tleft,size_tright){if(left<right){intmid=(left+right)/2;merge_sort(data,left,mid);merge_sort(data,mid+1,right);merge(data,left,mid,right);}}intmain(void)intdata[]=size_tsize=sizeof(data)/sizeof//bubble(data,//insert(data,//select(data,//quick(data,0,size-1);merge_sort(data,0,size-1);for(size_ti=0;i<size;i++)cout<<data[i]<<'';cout<<endl;intdata1[]=intdata2[]=intmerge(data1,6,data2,6,data3);for(size_ti=0;i<12;i++)cout<<data3[i]<<'';cout<<endl;intmerge(data,1,6,for(size_ti=0;i<14;i++)cout<<data[i]<<'';cout<<return}判斷回車(returncarriage:if(c=='\r') \n是換順序表:數(shù)組,在連續(xù)的內(nèi)存中,便于隨機(jī),插入刪除效率比較低a[10]#include#include<stdlib.h>#includestructintstructliststructlist*create(void){structlist*head,*tail,*p;intx;head=tail=NULL;printf("pleaseenteranumber");p=(str

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論