C/C++实现快速排序的方法

 更新时间:2014年12月01日 14:43:57   投稿:hebedich  
这篇文章主要介绍了C/C++实现快速排序的方法,这几天在找工作,被问到快速排序,结果想不出来快速排序怎么弄的;回来搜索了一下,现在记录下来,方便以后查看。

快速排序不会直接得到最终结果,只会把比k大和比k小的数分到k的两边。(你可以想象一下i和j是两个机器人,数据就是大小不一的石头,先取走i前面的石头留出回旋的空间,然后他们轮流分别挑选比k大和比k小的石头扔给对面,最后在他们中间把取走的那块石头放回去,于是比这块石头大的全扔给了j那一边,小的全扔给了i那一边。只是这次运气好,扔完一次刚好排整齐。)为了得到最后结果,需要再次对下标2两边的数组分别执行此步骤,然后再分解数组,直到数组不能再分解为止(只有一个数据),才能得到正确结果。 —— 取自百度百科(链接)

C/C++ 实现:

复制代码 代码如下:

void quick_sort(int* a, int low, int high){ if (low >= high) {
    return;
} int first = low; int last = high; int key = a[first]; while (first < last) {
    while (first < last && a[last] >= key) {
        --last;
    }
    a[first] = a[last];
 
    while (first < last && a[first] <= key) {
        ++first;
    }
    a[last] = a[first];
}
a[first] = key;
quick_sort(a, low, first-1);
quick_sort(a, first+1, high);
}

相关文章

  • C++深度探索运算符重载和返回值优化

    C++深度探索运算符重载和返回值优化

    这篇文章主要介绍了C++运算符重载及编译器返回值优化,C++当中除了函数可以重载之外,其实运算符也是可以重载的,下面一起来详细了解吧
    2022-04-04
  • C++实现学生信息管理系统

    C++实现学生信息管理系统

    这篇文章主要为大家详细介绍了C++实现学生信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • Qt定时器类QTimer使用详解与注意事项

    Qt定时器类QTimer使用详解与注意事项

    Qt提供了两种定时器,一种是QObject类的定时器,另一种是QTimer类的定时器,这篇文章主要给大家介绍了关于Qt定时器类QTimer使用与注意事项的相关资料,需要的朋友可以参考下
    2023-10-10
  • C语言实现桶排序的方法示例

    C语言实现桶排序的方法示例

    这篇文章主要介绍了C语言实现桶排序的方法,简单描述了桶排序的概念、原理并结合实例形式分析了C语言实现桶排序算法的具体操作技巧,需要的朋友可以参考下
    2018-01-01
  • C语言入门篇--四大常量(字面,const修饰,宏,枚举)及标识符

    C语言入门篇--四大常量(字面,const修饰,宏,枚举)及标识符

    本篇文章是c语言基础篇,主要讲述一下常量,常量即不可被直接修改的量(const修饰的常变量可间接修改,后续文章会继续说明)请大家持续关注脚本之家
    2021-08-08
  • C++ 中消息队列函数实例详解

    C++ 中消息队列函数实例详解

    这篇文章主要介绍了C++ 中消息队列函数实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • Opencv 视频读取与写入的实现示例

    Opencv 视频读取与写入的实现示例

    本文将介绍如何使用OpenCV进行视频读写。通过阅读本文,您将了解如何读取视频文件、处理视频帧、写入视频文件等操作,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • Qt自定义Widget实现互斥效果详解

    Qt自定义Widget实现互斥效果详解

    在使用Qt时,可能会遇到这种问题:多个控件互斥,类似于QRadiButton控件,但又不是单纯的QRadioButton控件,互斥的可能是一个窗口,也可能是几个按钮,等等多种情况。本文将介绍利用Qt自定义Widget实现的互斥效果,需要的可以参考一下
    2022-01-01
  • C++实现迷宫生成与解决

    C++实现迷宫生成与解决

    这篇文章主要为大家详细介绍了C++实现迷宫生成与解决,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • 打印菱形以及斐波纳契数列的几种解法介绍

    打印菱形以及斐波纳契数列的几种解法介绍

    本篇文章是对打印菱形及斐波纳契数列的几种解法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06

最新评论