⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qsort2.c

📁 在定时器中断中做LED的PWM输出 AT89C2051实现A/D转换的C51程序 单片机开发系统 指令系统 程序设计 定时与中断 系统扩展 接口技术 串行口
💻 C
字号:
//快速排序的递归算法。

#define MAX 16 	//元素个数的最大值

int R[MAX+1]={0,9,2,13,5,10,16,17,11,4,6,8,1,7}; //用数组来储存待排序元素,R[0]为辅助单元

QUICKSORT (int low,int high)  reentrant	//快速排序的递归算法
{
	int i,j;
	if (low>=high) return;	//没有待排序区间,算法结束。
	i = low ; j = high ;R[0] = R[i] ; 	//左右指针和基准值初始化
	while ( i < j ) {		//只要存在无序区间
		while ( R[j] >= R[0] && i < j ) j--; //扩充大值区间
		if (i<j) R[i++] = R[j]; 		//将小值记录移入小值区间
		while ( R[i] <= R[0] && i < j ) i++; //扩充小值区间
		if (i<j) R[j--] = R[i]; 		//将大值记录移入大值区间
		}
	R[i] = R[0]; 		//将基准记录放入最终位置
	if (low<i-1) QUICKSORT (low,i-1);	//如果小值区间存在,对其进行排序
	if (i+1<high) QUICKSORT (i+1,high);	//如果大值区间存在,对其进行排序
}

main ( )
{   
	QUICKSORT (1,13); //调用快速排序算法
	while (1) ; //在这一行设置断点,中止程序运行,以便观察程序运行的结果 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -