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

📄 快速排序.cpp

📁 商品货架管理
💻 CPP
字号:
#include<stdio.h>
#define MAX 50
/*建立待排序数据表,输出数据表内容*/
void InputData(int list[],int n)
{
	printf("输入数字:\n");
	for(int i=0;i<n;i++)
		scanf("%d",&list[i]);
}
void OutputData(int list[],int n)
{
	printf("\n每趟排序的划分结果:\n");
	for(int k=0;k<n;k++)
		printf("%3d",list[k]);
	    printf("\n");
}
/*使用快速排序对数据进行排序*/
void QuickSort(int list[],int law,int high)
{
	int i=law;
	int j=high;//设置左右指针
	int temp;
	int value=list[law];//取得最左边的元素
	if(law<high)
	{
		do
		{
			while(i<=high&&list[i]<=value)i++;//从左向右找比支点大的值
			while(j>law&&list[j]>=value)j--;//从右向左找比支点小的值
			if(i<j)//交换list[i]和list[j]的值
			{
				temp=list[i];
				list[i]=list[j];
				list[j]=temp;
			}
		}while(i<j);//交换list[law]和list[j]的值
		temp=list[law];
		list[law]=list[j];
		list[j]=temp;
		OutputData(list,7);//将每趟排序结果输出
	    QuickSort(list,law,j-1);
		QuickSort(list,j+1,high);
	}
}
void main()//主函数
{
	int num;
	int list[MAX];
	printf("输入数字的个数(n<50):\n");
	scanf("%d",&num);
	InputData(list,num);
	QuickSort(list,0,num-1);
}

⌨️ 快捷键说明

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