求各位同学帮助:快速排序

VS2022,下面的快速排序逻辑错了

    //快速排序
    #include"stdio.h"
void qiuick_short(int arr[], int l, int r)
{
    int i = l; int j = r;
    int temp; int k = (i + j) / 2;
    int pivot = arr[k];
    while (i <= j)
    {
        while (arr[i] < pivot)
        {
            i++;
        }
        while (arr[j] > pivot)
        {
            j--;
        }

        if (i <= j)
        {
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
            i++;
            j--;

        }


    }

    if (l < j)
    {
        qiuick_short(arr, l, j);
    }
    if (i < r)
    {
        qiuick_short(arr, i, r);
    }

}
    
    
    
    void main()
    {
        int arr[] = { 73,108,111,118,101,70,105, 115,104,67,46,99,111,109 };
        int i, len=sizeof(arr)/sizeof(arr[0]);
        qiuick_short(arr, 0, len - 1);
        printf("排序后的结果是:");
            for (i = 0; i < len; i++); 
        {
            printf("%d   ", arr[i]);
        }
    }

直接给你找了个实现,亲测有效【你研究研究】:

快速排序-C语言版(带图详细)_小陈没烦恼的博客-CSDN博客_快速排序c语言 前言哈喽,大家好,我最近在复习数据结构中的排序算法章节,今天复习到了交换排序算法中的快速排序算法,所以给大家分享一下。一、什么是快速排序?快速排序算法是在几种排序算法中效率最高的一个排序算法了,故称为快速排序,它的时间复杂度为:O(nlog~2~n),相比冒泡排序算法的O(n^2^)有很大的提升。二、算法思想1、选取一个基准元素(一般我们将待排序序列中的第一个元素选取为基准元素)2、将其他元素与基准元素进行比较,比基准元素大的放到基准元素的右边,比基准元素小的放到基准元素的右... https://blog.csdn.net/qq_41772384/article/details/124251742


如有帮助,欢迎采纳哈!

在这里插入图片描述

本人的开源项目,欢迎star支持下!!!