12月21日
今天进行了篮球考试,考了投篮和上篮,应该能及格,下午去上了数据结构写了
快速排序
int Partition(SqList L,int low,int high) { L.elem[0]=L.elem[low]; int pivotkey=L.elem[0]; while(low<high) { while(low<high&&L.elem[high]>=pivotkey)--high; L.elem[low]=L.elem[high]; while(low<high&&L.elem[low]<=pivotkey)++low; L.elem[high]=L.elem[low]; } L.elem[low]=L.elem[0]; return low; }
堆排序
void HeapAdjust(HeapType H,int s,int m) { int rc=H.elem[s]; for(int j=2*s;j<=m;j*=2) { if(j<m&&H.elem[j]<H.elem[j+1])++j; if(rc>=H.elem[j])break; H.elem[s]=H.elem[j];s=j; } H.elem[s]=rc; }
归并排序
void Merge(SqList L,int low,int m,int high) { int i,j,k; i=j=low; k=m+1; int arr[1001]; while(j<=m&&k<=high) { if(L.elem[j]<L.elem[k]) arr[i++]=L.elem[j++]; else arr[i++]=L.elem[k++]; } while(j<=m)arr[i++]=L.elem[j++]; while(k<=high)arr[i++]=L.elem[k++]; for(int l=low;l<=high;l++) { L.elem[l]=arr[l]; } }
直接插入排序
void InsertSort(SqList L) { int j; for(int i=2;i<=L.Length;++i) { if(L.elem[i]<L.elem[i-1]) { L.elem[0]=L.elem[i]; L.elem[i]=L.elem[i-1]; for( j=i-2;L.elem[0]<L.elem[j];--j) L.elem[j+1]=L.elem[j]; L.elem[j+1]=L.elem[0]; } } }
希尔排序
void ShellInsert(SqList L,int dk) { for(int i=dk+1;i<=L.Length;++i) { int j; if(L.elem[i]<L.elem[i-dk]) { L.elem[0]=L.elem[i]; for(j=i-dk;j>0&&L.elem[0]<L.elem[j];j-=dk) L.elem[j+dk]=L.elem[j]; L.elem[j+dk]=L.elem[0]; } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理