文档章节

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;
}



© 著作权归作者所有

共有 人打赏支持
電泡泡
粉丝 24
博文 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

没有更多内容

加载失败,请刷新页面

加载更多

小程序异步操作 跨js执行 在微信小程序里面实现跨页面通信

我们知道,在小程序里面一个页面的变化,是通过调用 setData 函数来实现的。所以想做到在二级页面里让一级页面产生变化,最 Quick And Dirty 的做法就是把一级页面的 this 传入到二级页面去,...

xiaogg
9分钟前
0
0
授于管理员登录其它用户

1.沙盒中,授予管理员登录 安全性控制==>登录访问权限政策

在山的那边
11分钟前
0
0
线程安全的CopyOnWriteArrayList介绍

证明CopyOnWriteArrayList是线程安全的 先写一段代码证明CopyOnWriteArrayList确实是线程安全的。 ReadThread.java import java.util.List; public class ReadThread implements Runnable {......

绝地逢生
13分钟前
0
0
Java重写的7个规则

几年前你可能会遇到这样一个面试题:“重写和重载的区别”、而现在随着科技的更迭、面试的问题越来越高级、面试官的问题也越来越深入、此文是上述面试题的一个延伸、让你从简单的重写规则中更...

architect刘源源
13分钟前
0
0
JavaScript异步编程:Generator与Async

从Promise开始,JavaScript就在引入新功能,来帮助更简单的方法来处理异步编程,帮助我们远离回调地狱。 Promise是下边要讲的Generator/yield与async/await的基础,希望你已经提前了解了它。...

前端攻城老湿
14分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部