2021年11.26学习打卡

今日学习了C语言的结构体和快速幂运算,并通过刷题加深理解。重点研究了快速排序算法,了解其基本思想:选取基准数,将序列分为两部分,使得基准数左侧的元素都小于右侧的元素,然后递归地对两部分进行排序,最终实现整个序列的有序排列。同时,还学习了快速幂的高效求模运算方法,通过迭代将指数运算的时间复杂度降低。
摘要由CSDN通过智能技术生成

学习时间与内容:

  • 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;      / /取模
    }
     
  • 大致思路为:从序列中取出一个数作为基准数,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边,从而得到两个子序列。对两个子函数进行排序,随后合并。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值