学习时间与内容:
- 13:00-14:30刷题,学习C语言结构体,快速幂,
- 总学习1.5个小时,刷题2题
- 学习总结:
- 快速排序
- 今天从其他博主那学来的伪代码与代码:
- 伪代码:quickSort(arr, l, r)
if l < r
then
p = partition(arr, l, r)
quickSort(arr, l, p-1)
quickSort(arr, p+1, r) - 代码:
- long long POW(LL a,LL b,LL p){
int res=1;
while(b){
if(b&1)res=res*a; / /若b&1==1,就选择当前的迭代值a和res累乘。
a=a*a; / /迭代构造a,a是初始值的2的整数次幂
b=b>>1; / /将b右移一位
} / /以上计算得到a^b
return res%p; / /取模
}
-
大致思路为:从序列中取出一个数作为基准数,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边,从而得到两个子序列。对两个子函数进行排序,随后合并。