0
点赞
收藏
分享

微信扫一扫

掉头发的第一天1-21(好好搞编程好好搞编程好好搞编程)使用快速排序进行排序

陆佃 2022-01-21 阅读 41

亡羊补牢,为时不晚!时不我待,舍我其谁!ps:这排序是我对着书敲得,智商有限,等我理解理解

#include <stdio.h>
#include <stdlib.h>
int a[101],n;//设置全局变量,这两个变量需要在子函数中使用

void quicksort(int left,int right)
{
	int i,j,t,temp;
	if(left>right)
	   return;
	   
	temp=a[left];//temp中存的就是基准数
	i=left;
	j=right;
	while(i!=j)
	{
		//顺序很重要,要从右往左找
		while(a[j]>=temp && i<j)
		{
			j--;
		} 
		//再从左往右找
		while(a[j]<=temp && i<j)
		{
			i++;
		}  
		if(i<j)
	  {
	 	t=a[i];
	 	a[i]=a[j];
	 	a[j]=t;
	  } 
	}
	//最终将基准数归位
	    a[left] = a[i];
		a[i] = temp;
		
		quicksort(left,i-1);
		quicksort(i+1,right);
		return; 
} 
int main()
{
	system("color f5");
	int i,j;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
	}
	quicksort(1,n);
	for(i=1;i<=n;i++)
	{
		printf("%d",a[i]);
	}
	system("pause");
	return 0;
}
举报

相关推荐

0 条评论