19排序和查找
排序和查找
排序:暂考虑升序
- 冒泡排序:外循环定比较次数,内循环依次和后面数对比之后交换位置。
- 插入排序:第n+1插入前n个,整个前n+1个数有序排列
- 选择排序:第一个位置从所有的数中选择最小值放入,进行互换,同理第二个位置从剩下的数中选最小互换,依次如此。
- 快速排序:先找某元素处于第2几位,则数据被该元素分为左右两边;之后再在分的区间内继续操作
- 归并排序:先两个两个排,后四个四个排,再八个八个排再整体一起排.
排序和查找的关系
- 排序是查找的前提
- 排序是重点
快速排序(速度相对快):假定某个元素为第一个元素
# include <stdio.h>
//函数声明
int pos = FindPos(int * a, int low, int high);
void QuickSort(int * a, int low, int high);
int main()
{
int a[6] = {2, 1, 0, 5, 4, 3};
int i;
QuickSort(a, 0, 5);//第二个参数为第一个元素下标,第三个参数为最后一个元素下标
for(i = 0; i<6; ++i)
printf("%d", a[i]);
printf("\n");
}
//排序只能实现不需要返回值
void QuickSort(int * a, int low, int high)
{
int pos;
if(low < high)
{
pos = FindPos(a, low, high);//寻找某元素位置,该位置左边元素小于该元素,右边大于该元素
QuickSort(a, low, pos-1);
QuickSort(a, pos+1, high);
}
}
int QuickSort(int * a, int low, int high)
{
int val = a[low];//假定先找首元素位置
while(low<high)
{
while(low<high && a[high]>=val)
--high;
a[low] = a[high];
while(low<high && a[low]<val)
++low;
a[high] = a[low];
}//low往右,high往左,当相等时结束
a[low] = val;
return low;//low = high,返回任何一个都可
}
Java中容器和数据结构相关知识
- Interator接口
- Map
哈希表
数据结构
- 数据结构研究数据和数据操作的学问
- 数据存储分两部分
- 个体的储存
- 个体关系的存储
- 从某个角度而言,数据的存储最核心的就是个体关系的存储
- 个体存储可以忽略不计
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人