C/C++实践笔记 024快速排序法

1.快速排序法
快速排序法(双冒泡)在单线程最快,希尔排序在多线程最快

复制代码
#include<stdio.h>
#include<stdlib.h>
void swap(int *pi, int *pj)
{
    int temp = *pi;
    *pi = *pj;
    *pj = temp;

}
void show(int *p,int n) //显示数组状态
{    
    printf("\n此时状态  ");
    for (int i = 0; i < n; i++)
    {
        printf("%4d", p[i]);
    }
}
void quick(int *arr,int iLeft,int iRight)
{
    int i = iLeft;//从左边开始循环
    int j = iRight + 1;//从右边开始循环
    if (i < j)
    {
        do
        {
            do
            {
                i++;

            }while(arr[i] <= arr[iLeft] & i <= iRight);
            //最靠近右边的一个小于等于它的数

            do
            {
                j--;
            } while (arr[j]>=arr[iLeft]&&j>iLeft);
            //最靠近左边大于等于它的数
            if (i < j)
            {
                swap(&arr[i], &arr[j]);//交换
            }

            //show(arr,10);

        } while (i<j);

        swap(&arr[iLeft], &arr[j]);

        //show(arr, 10);
        quick(arr, iLeft, j - 1); //分割左边
        quick(arr, j + 1, iRight);  //分割右边
    }
}
void main()
{
    int num[10] = { 10,9,20,19,13,8,9,22,0,91 };
    quick(num,0, 10 - 1);
    show(num, 10);
    system("pause");
}
复制代码

 

posted @   千年风雅丶  阅读(200)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示