当前位置: 首页 > news >正文

408数据结构强化(自用)

常用代码片段(持续更新)

折半查找

void SearchBinary(int A[];int x){int low = 0, high = n-1, mid;while(low<=high){mid = (low+high)/2;if(A[mid]==x) break;else if(A[mid] < x) low = mid + 1;else high = mid - 1;}

顺序表逆置

void Reverse(SqList &L){for(int i=0;i<L.length/2;i++){temp = L.data[i];L.data[i] = L.data[length-i-1];L.data[length-i-1] = temp;}
}

快速排序

int huafen(int A[]; int L; int R)int mid = A[L];while(L<R){while(L<=R&&A[R]>=mid) R--;A[L] = A[R];while(L<=R&&A[L]<=mid) L++:A[R] = A[L];}A[L] = mid;retutn L;}
void Qsort(int A[], int L, int R){if(L>=R) return;int M = huafen(A, L, R);Qsort(A, M+1, R); //右半部分快排Qsort(A, L, M-1); //左半部分快排
}

快速排序的划分思想

//使用划分函数找到数组中第k小的元素
int huafen(int A[]; int L; int R)int mid = A[L];while(L<R){while(L<=R&&A[R]>=mid) R--;A[L] = A[R];while(L<=R&&A[L]<=mid) L++:A[R] = A[L];}A[L] = mid;retutn L;}
int func(int A[], int n, int k){int L = 0, R = n-1, M = 0;while(1){M = huafen(A ,R ,L);if(M == k-1) break;else if(M > k-1) R = M-1;else if(M < k-1) L = m+1;}return A[k-1];
}

http://www.dtcms.com/a/287812.html

相关文章:

  • 实现el-select下拉框,下拉时加载数据
  • MYSQL 第一次作业
  • 《命令行参数与环境变量:从使用到原理的全方位解析》
  • Flink实时流量统计:基于窗口函数与Redis Sink的每小时PV监控系统(学习记录)
  • UniApp 自定义导航栏:解决安全区域适配问题的完整实践
  • C++基于muduo库从零实现Rpc框架
  • Ubuntu18.04环境下,vscode使用clangd、bear实时准确跳转过程中遇到的compile_commands.json无法解析问题
  • windows wsl ubuntu 如何安装 maven
  • 程序混淆的可行性?
  • PyCharm 入门指南:起步学习、开发环境一体
  • java: DDD using sql server 2019 or Oracle21c
  • WLAN Autoconfig 自启动失效/WIFI功能消失问题解决方案
  • Gradle安装教程
  • 深入理解设计模式之模板模式:优雅地定义算法骨架
  • 在RK3588开发板快速搭建ros环境以及运行ros程序(以usb_cam为例)
  • 云服务器搭建自己的FRP服务。为什么客户端的项目需要用Docker启动,服务端才能够访问到?
  • 详细解读Go中的 fmt包
  • 2025年医疗人工智能发展现状
  • JMeter 元件使用详解
  • 初学者STM32—DMA数据转运
  • [DBC教程 一] DBC文件概述及搭建编辑环境CANdb++ Admin
  • [LGR-233-Div.4]洛谷入门赛#37——8道题题解
  • CF 训练 2 D - E参考代码
  • 面试高频题 力扣 130. 被围绕的区域 洪水灌溉(FloodFill) 深度优先遍历(dfs) 暴力搜索 C++解题思路 每日一题
  • Maven 依赖管理
  • 5.组合模式
  • lowbit小解
  • C#操作WPS表格
  • LVS工作模式和算法的总结
  • 【RK3576】【Android14】摄像头MIPI开发调试