- 博客(2)
- 收藏
- 关注
原创 【算法学习c++】快速排序
快速排序,首先从数列中选取一个中间值,然后通过从数列开头和数列结尾对数组进行扫描,然后将大于这个中间值的数放到右边,将小于中间值的数放到左边(就是对这两个数交换即可,直到全部放完即可,此时循环结束)分治的时候分界点如果选取j的话,那么中间值(x)不能选取q[r],如果选取i的话中间值就不能选取q[l],这两种情况会造成无限划分的情况。这时如何将这个数列按照从小到大的顺序排列,通过递归,将数列分成数个子数列,将子序列排好序,那么整体就排好序了(也就是通过分治)。话不多说,先上代码!
2024-01-16 10:23:25
328
原创 rand 和 srand
srand(time(0)) time(0)在此相当于一个种子,由于时间不断变化则每次程序运行的随机数不同 如若去掉srand则每次程序运行的随机数都一样。如图所示使用rand 和srand 需要使用cstdlib头文件,使用time功能需要使用ctime的头文件。调用time(0)表示返回自格林尼治的时间1970年1月1日00:00:00到现在时间的秒数。srand(seed)seed是用来控制生成数。rand()% 10代表取一个0~9的随机整数。要想产生一个1~100的随机整数则可以用这个。
2023-10-17 21:34:54
28
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人