欢迎来到天天文库
浏览记录
ID:13071278
大小:32.50 KB
页数:9页
时间:2018-07-20
《查找和排序(折半查找、二叉插入查找、直接插入排序、折半排序、快速排序、选择排序、堆排序、归并排序)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、查找和排序(折半查找、二叉插入查找、直接插入排序、折半排序、快速排序、选择排序、堆排序、归并排序)#includeusingnamespacestd;typedefstruct{int*elem;intlength;}SSTable;//折半查找intSearch_Bin(SSTablest,intkey){intlow=1,high=st.length;while(low<=high){intmid=(low+high)/2;if(key==st.elem[mid]){cou
2、t<<"要查找元素在:"<high)cout<<"查找元素在表中不存在"<3、ey){if(T==NULL){T=(BiTree)malloc(sizeof(BiTNode));T->data=key;T->lchild=T->rchild=NULL;returnfalse;}if(key==T->data)returntrue;elseif(keydata)returnSearchandIn(T->lchild,key);elsereturnSearchandIn(T->rchild,key);}#defineMaxsize20typedefstruct{intk4、ey;}RedType,*red;typedefstruct{RedTyper[Maxsize+1];intlength;}list,heap;//插入排序voidInsertSort(list&L){for(inti=2;i5、y=L.r[j].key;L.r[j+1].key=L.r[0].key;}}//折半插入排序voidBInsertSort(list&L){for(inti=2;i=high+1;--j)L.r[j+1]=L.r6、[j];L.r[high+1]=L.r[0];}}intPartition(list&L,intlow,inthigh){intpivotkey=L.r[low].key;while(low=pivotkey)--high;inttemp=L.r[low].key;L.r[low].key=L.r[high].key;L.r[high].key=temp;while(low7、key)++low;temp=L.r[low].key;L.r[low].key=L.r[high].key;L.r[high].key=temp;}returnlow;}//快速排序voidQSort(list&L,intlow,inthigh){if(low8、;}else{QSort(L,pivotloc+1,high);QSort(L,low,pivotloc-1);}}}//选择排序voidSelectSort(list&L){for(inti=1;i
3、ey){if(T==NULL){T=(BiTree)malloc(sizeof(BiTNode));T->data=key;T->lchild=T->rchild=NULL;returnfalse;}if(key==T->data)returntrue;elseif(keydata)returnSearchandIn(T->lchild,key);elsereturnSearchandIn(T->rchild,key);}#defineMaxsize20typedefstruct{intk
4、ey;}RedType,*red;typedefstruct{RedTyper[Maxsize+1];intlength;}list,heap;//插入排序voidInsertSort(list&L){for(inti=2;i5、y=L.r[j].key;L.r[j+1].key=L.r[0].key;}}//折半插入排序voidBInsertSort(list&L){for(inti=2;i=high+1;--j)L.r[j+1]=L.r6、[j];L.r[high+1]=L.r[0];}}intPartition(list&L,intlow,inthigh){intpivotkey=L.r[low].key;while(low=pivotkey)--high;inttemp=L.r[low].key;L.r[low].key=L.r[high].key;L.r[high].key=temp;while(low7、key)++low;temp=L.r[low].key;L.r[low].key=L.r[high].key;L.r[high].key=temp;}returnlow;}//快速排序voidQSort(list&L,intlow,inthigh){if(low8、;}else{QSort(L,pivotloc+1,high);QSort(L,low,pivotloc-1);}}}//选择排序voidSelectSort(list&L){for(inti=1;i
5、y=L.r[j].key;L.r[j+1].key=L.r[0].key;}}//折半插入排序voidBInsertSort(list&L){for(inti=2;i=high+1;--j)L.r[j+1]=L.r
6、[j];L.r[high+1]=L.r[0];}}intPartition(list&L,intlow,inthigh){intpivotkey=L.r[low].key;while(low=pivotkey)--high;inttemp=L.r[low].key;L.r[low].key=L.r[high].key;L.r[high].key=temp;while(low7、key)++low;temp=L.r[low].key;L.r[low].key=L.r[high].key;L.r[high].key=temp;}returnlow;}//快速排序voidQSort(list&L,intlow,inthigh){if(low8、;}else{QSort(L,pivotloc+1,high);QSort(L,low,pivotloc-1);}}}//选择排序voidSelectSort(list&L){for(inti=1;i
7、key)++low;temp=L.r[low].key;L.r[low].key=L.r[high].key;L.r[high].key=temp;}returnlow;}//快速排序voidQSort(list&L,intlow,inthigh){if(low8、;}else{QSort(L,pivotloc+1,high);QSort(L,low,pivotloc-1);}}}//选择排序voidSelectSort(list&L){for(inti=1;i
8、;}else{QSort(L,pivotloc+1,high);QSort(L,low,pivotloc-1);}}}//选择排序voidSelectSort(list&L){for(inti=1;i
此文档下载收益归作者所有