快速排序:
/*
*将r位置中的位置移动到正确位置q上,并返回q,使得在a[p]..a[q-1] < a[q],
a[q+1]..a[r] > a[q]
*/
int partition(int a[], int p, int r);
void qSort(int a[], int p, int r);
void quickSort(int a[], int n) {
qSort(a, 0, n - 1);
}
void qSort(int a[], int p, int r) {
int q;
while (p < r) {
q = partition(a, p, r);
qSort(a, p, q - 1);
p = q + 1;
}
}
int partition(int a[], int p, int r) {
int x, i, j;
x = a[r];
i = p - 1;
for (j = p; j < r; j++) {
if (a[j] <= x) {
i++;
swap(a, i, j);
}
}
i++;
swap(a, i, r);
return i;
}
分享到:
相关推荐
一些常用排序算法的C语言实现,包括直接选择排序,希尔排序,直接插入排序,快速排序,归并排序,冒泡排序,堆排序
个人原创总结的常用排序算法C语言示例代码解说PDF,可以动态输出排序过程,以便理解排序算法的主旨思想。包含有直接插入排序,折半插入排序,2路直接插入排序,起泡排序,简单选择排序,快速排序,堆排序,(希尔排序,归并...
C++实现常用排序算法 (快速,归并,选择,谢尔,堆排序)
利用随机函数产生30000个随机整数,利用插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等排序方法进行排序,并且 (1) 统计每一种排序上机所花费的时间。 (2) 统计在完全正序,完全逆序情况下记录的比较...
要求对以下6种常用的内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。待排序表的表长不小于1000;其中的数据要用伪随机数产生程序产生,至少要用5组不同的输入数据作比较...
基于C语言的常用排序算法设计实现 包含 冒泡排序 插入排序 归并排序 快速排序 计数排序 基数排序
主要介绍了常用排序算法的C语言版实现示例整理,包括快速排序及冒泡排序等,基本上都给出了时间复杂度,需要的朋友可以参考下
给出了常用的c语言排序算法及源码:常见排序算法的实现(一)→插入排序,常见排序算法的实现(二)→shell排序,冒泡排序 快速排序 递归排序
介绍12种常用编程算法冒泡排序、选择排序、插入排序、快速排序、二分法、深度优先搜索、广度优先搜索、递归算法、哈希算法等等,以及C语言实例。
-C语言常用算法集.pdf中部分算法的实现源码- 编译运行环境为DEV C ++ 非数值运算 -排序 ----整体排序 ------整体快速排序 ------整体冒泡排序 ------整体选择排序 ----字符串排序 ------字符串排序 -查找 ----对分...
冒泡排序和快速排序是两种常用的排序算法,它们的实现依赖于对数据的遍历。因此,本毕设旨在通过二叉树的遍历来实现这两种排序算法的实现。 ## 二、研究内容 本毕设将包括以下内容: 1. 二叉树的建立和遍历:包括...
常用得排序算法,经典的算法,包括桶排序,冒泡排序,快速排序等等
简介: C语言是编程语言中的一朵奇葩,虽已垂垂老矣,但却屹立不倒,... 时间复杂度、冒泡排序法、选择排序法、快速排序法、归并排序法、顺序排序法、二分查找等常用算法的详细讲解; 良好的编码习惯和编程风格。
C语言常用排序全解:选择排序,直接插入排序,冒泡排序,希尔排序,快速排序,堆排序,渗透建堆,堆排序
C语言常用算法程序 介绍了冒泡法 快速排序 希尔排序等常用 的C语言经典算法程序
一些常用的排序算法完整代码 用C语言 写的 快速排序 堆排序啊 等等
经典常用算法解析与实现,通过Java C语言分别实现各种算法,图文并茂,描述很详细! 主要包括如下算法,很全面! 河内塔 费式数列 巴斯卡三角形 三色棋 老鼠走迷官(一) 老鼠走迷官(二) 骑士走棋盘 八个...
几种常见的排序算法的C语言实现。分为三个步骤,1是自动生成待排序数组,2是几种常见的排序算法(有直接插入排序,冒泡排序,选择排序,shell排序,快速排序,堆排序),及其排序之后的验证(3). 用VC++6.0打开编译...
快速排序(Quicksort)是一种常用的排序算法,它基于分治法,将一个大问题划分为两个子问题进行解决。以下是一个简单的用C语言实现的快速排序的例子: ```c #include // 交换两个元素的值 void swap(int *a, int ...