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

📄 quick.c

📁 基于C++的排序各种排序操作,包括快速排序,shell排序,随机排序,选择排序等
💻 C
字号:
#include<stdio.h>
void quick_sort(int[],int ,int ,int);

void main()
{
	int data[20];
	int size=0,i;
	printf("please enter number to sort(enter 0 when end):\n");
	printf("number:");
	do   /*要求输入数据直到输入为0*/
	{
		scanf("%d",&data[size]);
	}while(data[size++]!=0);
	for(i=0;i<60;i++)
		printf("-");
	printf("\n");
	quick_sort(data,0,--size-1,size-1);   
	for(i=0;i<60;i++)
		printf("-");
	printf("\nSorting:");
	for(i=0;i<size;i++)
		printf("%d ",data[i]);
}

void quick_sort(int data[],int left,int right,int size)
{   /*left与right分别表示要排序数据两端*/
	int lbase,rbase,temp,i;
	if(left<right)
	{
		lbase=left+1;
		while(data[lbase]<data[left])lbase++;
		rbase=right;
		while(data[rbase]>data[left])rbase--;
		while(lbase<rbase)   /*若lbase小于rbase,则两数据对调*/
		{
			temp=data[lbase];
			data[lbase]=data[rbase];
			data[rbase]=temp;
			lbase++;
			while(data[lbase]<data[left])lbase++;
			rbase--;
			while(data[rbase]>data[left])rbase--;
		}
		temp=data[left];   /*此时lbase大于rbase,则rbase的数据与第一组对调*/
		data[left]=data[rbase];
		data[rbase]=temp;
		printf("Access:");
		for(i=0;i<size;i++)
			printf("%d ",data[i]);
		printf("\n");
		quick_sort(data,left,rbase-1,size);
		quick_sort(data,rbase+1,right,size);
	}
}


⌨️ 快捷键说明

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