首页 > 其他分享 >02 快速排序(快排)

02 快速排序(快排)

时间:2023-10-03 23:04:42浏览次数:37  
标签:02 count int QuickSort 快排 low printf array 排序

#include "stdio.h"

void QuickSort(int *array, int low, int height)
{
    int i, j, tmp; // 两个哨兵,和开头的元素下标
    int temp;
    i = low;
    j = height;
    tmp = array[low];

    if (i > j) // 如果下标i大于下标j,函数结束运行
    {
        return;
    }

    while (i < j)
    {
        while (array[j] > array[i] && j>i)
        {
            j--;
        }
        while (array[i] <= tmp && j > i)
        {
            i++;
        }
        if (j > i)
        {
            temp = array[i];
            array[i] = array[j];
            array[j] = temp;
        }
    }
    array[low] = array[i];
    array[i] = tmp;

    // 左右两个子集
    QuickSort(array, low, i - 1);
    QuickSort(array, i + 1, height);
}

int main()
{
    int count;
    printf("数组的大小:");
    scanf("%d", &count);
    int array[count];
    printf("\n输入数组元素:");
    for (int i = 0; i < count; i++)
    {
        scanf("%d", &array[i]);
    }
    QuickSort(array, 0, count - 1);
    printf("\n快速排序后:");
    for (int i = 0; i < count; i++)
    {
        printf("%d ", array[i]);
    }

    return 0;
}

标签:02,count,int,QuickSort,快排,low,printf,array,排序
From: https://www.cnblogs.com/zhanjianhai/p/17741771.html

相关文章

  • stm32f103-2023-10-03
    这是当时在“某知道”上自己的一篇原创回答,由于某些原因目前个人在该平台上的所有回答或隐藏或清空了,现经删整之后收纳回本人博客。======================================================================================问题链接:https://zhidao.baidu.com/question/1604602......
  • 2023 ICPC 香港
    gym开场发现E是传统数据结构题很高兴,不过先跳了。F知道相邻两段的长度差\(\le1\),以为最终每段长度只有\(\lfloor\frac{n}{m+1}\rfloor,\lceil\frac{n}{m+1}\rceil\)两种,那就可以DP了,队友签完HA我上去写,呼救两次后WAontest2,gjk说不相邻的两端长度差不一定\(\le1......
  • [ACTF2020 新生赛]Exec 1
    原理linux系统命令的使用命令执行漏洞解题过程打开靶场发现有ping功能,猜测是涉及命令执行漏洞,根据题目的Exec也能看出回来,先试试ping127.0.0.1,没问题接着使用&连接符执行多条系统命令,执行了ls命令,发现只有index.php,猜测flag是在根目录那里,所以我们就是用ls/来找出flagpa......
  • 20213227《计算机基础与程序设计》第一周学习总结
    作业信息1.作业属于哪个课程:https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP2.这个作业要求在哪里:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP/homework/127543.作业的目标:快速浏览教材《计算机科学概论》,提出自己不懂或最想解决的问题4.作业正文:第一章......
  • IOI2023
    来感受一下IOI的题目质量。没做T6。CF436ECardboardBoxtag:选数问题的调整方法,贪心考虑如果我们把一个数两个都选,那么根据简单调整法,显然不存在\(b_i\)比它小的数一个都没选。所以假设我们枚举选了两次的\(b_i\)最大的数,那么它前面都选了至少一次,后面都选了至多一次,所......
  • 202310032035_《近期撸码心得》
    如图,循环依赖一直搞糊涂我,本来,mybatis就是因sql操作灵活性而采用,无可厚非,对于新手的我,一是项目需要,而是为求职职场操练,但“请君入问”感是还要配“mybatis-generator”plugin,为了自动嘛。但是,我觉得这插件与Lombok某些生成代码严重重复......直到修修补补,到上图“推荐重新设......
  • Newstar CTF 2023
    WEEK1PWN1.ezshellcode直接sendline(shellcode)即可exp:frompwnimport*p=remote("node4.buuoj.cn",29374)#p=process('/home/miyu/Desktop/ezshellcode')context(log_level='debug',arch='amd64',os='linux......
  • NOIP2023 国庆集训 A 组 Day7
    T1思路:因为只有三个串故枚举其中一个为调换的串,再枚举k验证即可。T2思路:正着不好做,考虑反着做。这样就不会覆盖之前的。赛时没想到这个常见套路,正难则反。T3事实上只有一种情况,故只需倒着枚举遇到a统计答案。使用一个变量sum来记录遇到下一个a的次数如果枚举到b,sum+=1。......
  • 2023.10.3——每日总结
    学习所花时间(包括上课):0h代码量(行):0行博客量(篇):1篇今天,上午学习+休息,下午学习+休息;我了解到的知识点:1.Vue2.终于有一段较长且不被打扰的时间,系统的学习一下JavaWeb,以https://www.bilibili.com/video/BV1m84y1w7Tb为准;明日计划:学习+休息......
  • 2023.10.3日报
    npminstallvue-router@3---用于vue2npminstallvue-router@4---用于vue3vue-router主要是用于跳转<template><!--<divid="app">--><!--<imgalt="Vuelogo"src="./assets/logo.png">--><!--<......