北航计算机软件技术基础课程作业&笔记【5】

题目

(文章一周后公开~)

sort

1.快排算法

  • 核心思路:选取(一般是)当前数组第一个元素作为中间值mid,将数组按照比mid小/大分为两半,再对子数组进行同样操作(二叉树前序遍历)

  • 具体操作:主要是分2半那里,可以巧妙一些地来遍历,所以用到了left和right指针(重合时就遍历完了),同时自己写的时候用了一下right_flag表示是否要看右边与mid做比较(网上有更好的,我只是自己这样写了而已)

  • 左右指针的使用规则:假设以先将right与mid值对比开始,发生了交换后,就改变判断的指针(比如right小于mid,那么交换right与left,后面就开始判断left与mid的大小关系了),否则,一直移动被判断的指针(比如right一直大于mid,那一直right--)

  • 代码:

    #include <iostream>
    #include <vector>
    #include <iterator> 
    std::vector<int> origin{78,31,46,22,81,12,55,64,8,17};
    void quick_sort(int left, int right)
    {
    
        if(left >= right)
            return;
        // 直接记录下来,懒得把数组分小了
        int start = left,end = right;
        // 确定好中间位置的值
        int mid = origin.at(left);
        std::cout << mid <<std::endl;
        // 先从右边开始看
        int right_flag = 1;
        // 结束时因为left=right,这就是mid元素应该放的地方
        while(left < right)
        {   
            if(right_flag)
            {
                if(origin.at(right) < mid)
                {
                    // 右边比左大,那就右边往左边放
                    std::swap(origin[left],origin[right]);
                    left++;
                    std::copy(std::begin(origin), std::end(origin), std::ost

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-27 03:04:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-27 03:04:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-27 03:04:03       82 阅读
  4. Python语言-面向对象

    2024-04-27 03:04:03       91 阅读

热门阅读

  1. 面试题:判断一个完全平方数

    2024-04-27 03:04:03       27 阅读
  2. Ali-Sentinel-入口控制

    2024-04-27 03:04:03       30 阅读
  3. SQL数据更新

    2024-04-27 03:04:03       26 阅读
  4. Vue-3

    Vue-3

    2024-04-27 03:04:03      32 阅读
  5. C# 面向对象编程(一)——类 第三篇

    2024-04-27 03:04:03       34 阅读
  6. DataGridView控件

    2024-04-27 03:04:03       35 阅读
  7. Redis的单线程模型解析与应用实践

    2024-04-27 03:04:03       33 阅读
  8. 基于nest框架的redis streams实现mq(bullmq)

    2024-04-27 03:04:03       31 阅读
  9. 面试经典150题——分发糖果

    2024-04-27 03:04:03       34 阅读
  10. 代采系统:电商领域的创新与实践

    2024-04-27 03:04:03       36 阅读
  11. Numpy

    Numpy

    2024-04-27 03:04:03      33 阅读
  12. sentinel整合nacos持久化

    2024-04-27 03:04:03       31 阅读