文档章节

qsort实现

電泡泡
 電泡泡
发布于 2014/05/10 21:35
字数 128
阅读 30
收藏 0
#include <stdio.h>
void swap(int array[], int i, int j)
{
	int tmp;
	tmp = array[i];
	array[i] = array[j];
	array[j] = tmp;
}

void print(int array[], int i, int j)
{
	int k;
	for(k=i; k<=j; k++){
		printf("%d", array[k]);
	}
	printf("\n");
}

void quicksort(int array[], int left, int right)
{
	int i, last;
	if(left >= right)
		return;
	swap(array, left, (left + right)/2);

	last = left;

	for(i=left+1; i <= right; i++){
		if(array[i] < array[left]){
			swap(array, ++last, i);//++last not last
		}
	}
	swap(array, left, last);

	quicksort(array, left, last-1);
	quicksort(array, last+1, right);

}

int main()
{
	int a[]={1,5,2,5,8,7,1,3,9};
	quicksort(a, 0, 8);
	print(a, 0, 8);
	return 0;
}



© 著作权归作者所有

共有 人打赏支持
電泡泡
粉丝 25
博文 183
码字总数 69717
作品 0
衡阳
关于字符串中字符按ascii码值排序的一些疑问

function template <algorithm> std::sort default (1) template <class RandomAccessIterator>void sort (RandomAccessIterator first, RandomAccessIterator last); custom (2) template <......

zray4u
2016/06/13
52
0
C语言库函数qsort

在我们的实际编程中,我们经常要对数据进行排序,而C的标准库给我们提供了这样一个函数qsort,它的声明如下: void qsort( void base, sizet num, sizet width, int (cdecl compare)(const v...

长平狐
2013/12/25
46
0
QT容器中的通用算法

今天开始的部分是关于Qt提供的一些通用算法。这部分内容来自C++ GUI Programming with Qt 4, 2nd Edition。 提供了一系列通用的模板函数,用于实现容器上面的基本算法。这部分算法很多依赖于...

晨曦之光
2012/04/13
347
0
使用VC库函数中的快速排序函数

上一篇讲了快速排序的实现。但在很多场合,直接使用快速排序的库函数是很方便的。下面讲下VC中库函数qsort()的用法: 函数原型: void qsort(void base,sizet num,sizet width, int (cdecl c...

长平狐
2012/12/10
51
0
VC库中快排函数的详解

Author: bakari Date: 2012.8.9 以前都是自己手动写这个算法,觉得也不是一件很麻烦的事,但现在写的程序基本上都用得着快排,重新去写这个算法很没有必要。直接使用VC库中提供的qsort方便了...

chambai
2012/08/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

[MicroPython]STM32F407开发板驱动OLED液晶屏

1.实验目的 1.学习在PC机系统中扩展简单I/O 接口的方法。 2.进一步学习编制数据输出程序的设计方法。 3.学习 F407 Micropython开发板控制OLED显示字符。 2.所需元器件 F407 Micropython开发板...

bodasisiter
26分钟前
0
0
php require和include 相对路径一个有趣的坑

以前总是被教育,不要使用相对路径,这样性能比较差,但是相对路径的问题不仅仅是性能哦,看下面这里例子 这是项目结构 .├── main.php├── t│ ├── t1.php│ └── t2.php└─...

anoty
26分钟前
13
0
x64技术之SSDT_Hook

测试环境: 虚拟机: Windows 7 64bit 过PG工具 驱动加载工具 PCHunter64 系统自带的计算器和任务管理器等 实现思路: 实际思路与win32的思路一样.都是替换SSDT表里边的函数地址.不过微软被搞怕...

simpower
28分钟前
0
0
TreeMap源码分析,看了都说好

一、简介 TreeMap最早出现在JDK 1.2中,是 Java 集合框架中比较重要一个的实现。TreeMap 底层基于红黑树实现,可保证在log(n)时间复杂度内完成 containsKey、get、put 和 remove 操作,效率很...

Java小铺
38分钟前
0
0
协变、逆变

概念 假设 A、B表示类型 ≤ 表示继承关系 f<⋅>表示类型转换 若A ≤ B,则 A是B的子类,B是A的超类 协变、逆变 什么是型变?型变(type variance)允许对类型进行子类型转换。 为了下面讲解先...

obaniu
44分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部