
排序
水星没有记
这个作者很懒,什么都没留下…
展开
-
快速排序和随机数问题
快速排序问题思路:①调整序列中的元素,使得当前序列最左端的元素在调整过后满足左侧所有元素均不超过该元素、右侧所有元素都大于该元素 ②对该元素的左侧和右侧分别递归①进行调整,直到当前区间的长度不超过1C语言随机数问题: 要用到两个头文件#include<stdlib.h>和#include<time.h>,使用时需要在main()函数的后面加上一个srand((unsigned)time(NULL)),如果想在[a,b]区间内生成一个随机数,要是用rand()%(b原创 2021-04-18 18:53:19 · 169 阅读 · 0 评论 -
2-路排序
2-路排序问题(递归实现)const int maxn=100;void merge(int A[],int L1,int R1,int L2,int R2){ int i=L1,j=L2; int temp[maxn],index=0; while(i<=R1&&j<=R2){ if(A[i]<=A[j]){ temp[index++]=A[i++]; }else{ temp[index++]=A[j++]; } } while(i&原创 2021-04-17 16:30:27 · 118 阅读 · 0 评论 -
序列的合并问题
序列的合并问题思路:设置两个下标i和j,初始值为0,表示分别指向序列A 的第一个元素和序列B的第一个元素,然后根据A[i]与B[j]的大小决定哪一个放在序列C ①若A[i]<B[j],说明 A[i]是当前序列A与序列B的剩余元素中最小的那个,因此把A[i]加入序列C中,并让i加1(即让i右移一位) ②若A[i]>B[j],说明 B[j]是当前序列A与序列B的剩余元素中最小的那个,因此把B[j]加入序列C中,并让j加1(即让j右移一位) ③若A[i]==B[j],则任选一个加原创 2021-04-17 10:04:21 · 407 阅读 · 0 评论