`
chiyx
  • 浏览: 273569 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

常用排序算法的实现(C语言版)-快速排序

阅读更多
快速排序:
/*
*将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;
}
1
0
分享到:
评论

相关推荐

    几种常用排序算法的C语言实现

    一些常用排序算法的C语言实现,包括直接选择排序,希尔排序,直接插入排序,快速排序,归并排序,冒泡排序,堆排序

    常用排序算法C语言示例代码解说PDF

    个人原创总结的常用排序算法C语言示例代码解说PDF,可以动态输出排序过程,以便理解排序算法的主旨思想。包含有直接插入排序,折半插入排序,2路直接插入排序,起泡排序,简单选择排序,快速排序,堆排序,(希尔排序,归并...

    C++实现常用排序算法(快速,归并,选择,谢尔,堆排序)

    C++实现常用排序算法 (快速,归并,选择,谢尔,堆排序)

    用C语言实现常用排序算法

    利用随机函数产生30000个随机整数,利用插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等排序方法进行排序,并且 (1) 统计每一种排序上机所花费的时间。 (2) 统计在完全正序,完全逆序情况下记录的比较...

    内部排序算法比较,C语言

    要求对以下6种常用的内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。待排序表的表长不小于1000;其中的数据要用伪随机数产生程序产生,至少要用5组不同的输入数据作比较...

    基于C语言的常用排序算法设计实现

    基于C语言的常用排序算法设计实现 包含 冒泡排序 插入排序 归并排序 快速排序 计数排序 基数排序

    常用排序算法的C语言版实现示例整理

    主要介绍了常用排序算法的C语言版实现示例整理,包括快速排序及冒泡排序等,基本上都给出了时间复杂度,需要的朋友可以参考下

    c语言常用排序算法源码

    给出了常用的c语言排序算法及源码:常见排序算法的实现(一)→插入排序,常见排序算法的实现(二)→shell排序,冒泡排序 快速排序 递归排序

    常用编程算法及C语言实例

    介绍12种常用编程算法冒泡排序、选择排序、插入排序、快速排序、二分法、深度优先搜索、广度优先搜索、递归算法、哈希算法等等,以及C语言实例。

    SourceCode-C-Algorithm:-C语言常用算法集.pdf中部分算法的实现源码-

    -C语言常用算法集.pdf中部分算法的实现源码- 编译运行环境为DEV C ++ 非数值运算 -排序 ----整体排序 ------整体快速排序 ------整体冒泡排序 ------整体选择排序 ----字符串排序 ------字符串排序 -查找 ----对分...

    基于C语言数据结构二叉树建立遍历冒泡排序快速排序等的毕业设计,二叉树不仅是一种数据结构,而且还是许多算法的基础

    冒泡排序和快速排序是两种常用的排序算法,它们的实现依赖于对数据的遍历。因此,本毕设旨在通过二叉树的遍历来实现这两种排序算法的实现。 ## 二、研究内容 本毕设将包括以下内容: 1. 二叉树的建立和遍历:包括...

    一些排序算法C语言代码

    常用得排序算法,经典的算法,包括桶排序,冒泡排序,快速排序等等

    C语言进阶-牟海军.pdf

    简介: C语言是编程语言中的一朵奇葩,虽已垂垂老矣,但却屹立不倒,... 时间复杂度、冒泡排序法、选择排序法、快速排序法、归并排序法、顺序排序法、二分查找等常用算法的详细讲解;  良好的编码习惯和编程风格。

    C语言常用排序原理和算法全解

    C语言常用排序全解:选择排序,直接插入排序,冒泡排序,希尔排序,快速排序,堆排序,渗透建堆,堆排序

    C语言常用算法程序

    C语言常用算法程序 介绍了冒泡法 快速排序 希尔排序等常用 的C语言经典算法程序

    一些常用的排序算法完整代码

    一些常用的排序算法完整代码 用C语言 写的 快速排序 堆排序啊 等等

    经典常用算法(含代码)

    经典常用算法解析与实现,通过Java C语言分别实现各种算法,图文并茂,描述很详细! 主要包括如下算法,很全面! 河内塔 费式数列 巴斯卡三角形 三色棋 老鼠走迷官(一) 老鼠走迷官(二) 骑士走棋盘 八个...

    几种常用的排序算法的C/C++实现

    几种常见的排序算法的C语言实现。分为三个步骤,1是自动生成待排序数组,2是几种常见的排序算法(有直接插入排序,冒泡排序,选择排序,shell排序,快速排序,堆排序),及其排序之后的验证(3). 用VC++6.0打开编译...

    C语言 快速排序.docx

    快速排序(Quicksort)是一种常用的排序算法,它基于分治法,将一个大问题划分为两个子问题进行解决。以下是一个简单的用C语言实现的快速排序的例子: ```c #include // 交换两个元素的值 void swap(int *a, int ...

Global site tag (gtag.js) - Google Analytics