quicksort.cpp

来自「这个是快速排序」· C++ 代码 · 共 60 行

CPP
60
字号
#include <iostream>

using namespace std;
void swap(long &i, long &j);
int partition(long list[], int low, int high);

void quicksort(long list[],int left, int right)
{
	if(left < right)
	{
		int pos = partition(list, left, right);
		quicksort(list, left, pos - 1);
		quicksort(list, pos + 1, right);
	}
}

int partition(long list[], int low, int high)
{
	int pivpos = low;
	long temp = list[pivpos];
	long t;
	for(int i = low + 1; i <= high; i++)
	{
		if(list[i] < temp)
		{
			pivpos++;
			if(pivpos != i)
				swap(list[pivpos], list[i]);
		}
	}
	swap(list[low], list[pivpos]);
	return pivpos;
}

void swap(long &i, long &j)
{
	long tm = i;
	i = j;
	j = tm;
}

void main()
{
	int number;
	cin >> number;

	long list[1000];

	for(int i = 0;i < number; i++)
	{
		cin >> list[i];
	}

	quicksort(list, 0, number-1);

	for(i = 0 ; i < number; i++)
	{
		cout << list[i] << endl;
	}
}

⌨️ 快捷键说明

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