快速排序 40分 求大佬指点
查看原帖
快速排序 40分 求大佬指点
835434
alsochen楼主2023/10/19 11:07
    #include<stdio.h>
	#include<stdlib.h>

	long long int a[100000];

	void swap(int i,int j){

        int temp;
		temp = a[i];
        a[i] = a[j];
        a[j] = temp;
	}

	void q_sort(int l,int r)
	{

	int pv =l;
	int i = l;
	int j = r;
	if(i < j){

	while(i < j)
	{		
			while(a[j]> a[pv] && i < j) j--;//从右边找小的 
			while(a[i]<=a[pv] && i < j) i++;//从左边找大的 
			if (i < j)
				swap(i,j);
		}	
		
		swap(l,j);
		q_sort(l,j-1);
		q_sort(j+1,r);
	}
	else return;
	}


	int main(void) {

	int n,i;
	scanf("%d",&n);
	for(i=0;i<n;i++) {
		scanf("%d",&a[i]);}	
		
	q_sort(0,n-1);

	for(i=0;i<n;i++) 
		printf("%d ",a[i]);
	
	return 0;
	}
2023/10/19 11:07
加载中...