qsort.cpp

来自「本程序实现了快速排序」· C++ 代码 · 共 49 行

CPP
49
字号
#include<iostream.h>
#include<fstream.h>

void qsort(int [],int,int);

int array[10];
void main()
{
	ifstream in("in.txt");
	for(int j=0;j<10;j++)
	{
		in>>array[j];
		cout<<array[j]<<" ";
	}
	cout<<endl;

	int len=sizeof(array)/sizeof(int);
	qsort(array,0,len-1);

	for(int i=0;i<len;i++)
		cout<<array[i]<<" ";
	cout<<endl;
}

void qsort(int a[],int left,int right)
{
	int pivot,l,r,temp;
	l=left;
	r=right;
	pivot=a[(left+right)/2];  //取中位值作为分界值

	while(l<r)
	{
		while(a[l]<pivot) ++l;
		while(a[r]>pivot) --r;

		if(l>=r)
			break;
		temp=a[l];
		a[l]=a[r];
		a[r]=temp;
	}
	if(l==r) 
		l++;
	if(left<r)
		qsort(a,left,l-1);
	if(l<right)
		qsort(a,r+1,right);
}

⌨️ 快捷键说明

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