C++ 快速排序

#include<iostream>
#include<cstdio>
using namespace std;

int array[1001];

void quicksort(int *,int,int);
void swap(int &,int &);

int main()
{
	ios::sync_with_stdio(false);
	
	cout << "Enter the Number of digits:\n";
	
	int number_of_digits;
		cin >> number_of_digits;
		
	cout << "Enter " << number_of_digits << " digits:\n";	
		
	for(int i = 0 ; i < number_of_digits ; ++i)
		cin >> array[i];
		
	quicksort(array,0,number_of_digits-1);
	
	cout << "Ascending order:\n";
	
	for(int j = 0 ; j < number_of_digits - 1 ; ++j)
		cout << array[j] << " ";
	cout << array[number_of_digits-1] << endl;
	
	return 0;
};

void quicksort(int *arr,int start,int end)
{
	int i = start; int j = end; int pivot = arr[start];
	
	if(i > j)
		return;
	
	while(i != j)
	{
		while(i < j && arr[j] >= pivot)
			--j;
		while(i < j && arr[i] <= pivot)
			++i;
		if(i < j)
			swap(arr[i],arr[j]); 
	};
	
	swap(arr[start],arr[i]);
	
	quicksort(arr,i+1,end);
	quicksort(arr,start,i-1);
};

void swap(int &number_a,int &number_b)
{
	int index;
	
	index = number_a;
	number_a = number_b;
	number_b = index;
};

猜你喜欢

转载自blog.csdn.net/LynlinBoy/article/details/82148643