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

📄 quick.c

📁 解决排序问题
💻 C
字号:
#include <stdio.h>
#define MAX 100

int Init(int r[MAX]){
	int i,n;
	for(i=0;i<MAX;i++)
		r[i]=' ';
	printf("请输入有序的序列的长度:\n");
	scanf("%d",&n);
	printf("请按从小到大的顺序输入序列(回车确认):\n");
	for(i=1;i<=n;i++)
		scanf("%d",&r[i]);
	return n;
} 

void quick_sort(int data[MAX], int low, int high){
	int i, j, pivot;
	if (low < high){
		pivot=data[low];
		i=low; 
		j=high;

		while(i<j){
			while (i<j && data[j]>=pivot)
				j--;
				if(i<j)
					data[i++]=data[j]; //将比枢轴记录小的记录移到低端

				while (i<j && data[i]<=pivot)
					i++;
				if(i<j) 
					data[j--]=data[i]; //将比枢轴记录大的记录移到高端
		}

		data[i]=pivot; //枢轴记录移到最终位置

		quick_sort(data,low,i-1);
		quick_sort(data,i+1,high);
	}
}

void Show(int r[MAX],int n){
	int i;
	printf("您输入的数列为:\n");
	for(i=1;i<=n;i++)
		printf("(%d)%d ",i,r[i]);
	printf("\n");
}

void main(){
	int xuli[MAX];
	int n;
	n=Init(xuli);
	quick_sort(xuli,1,n);
	Show(xuli,n);
}

⌨️ 快捷键说明

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