C++实现快速排序

2022/1/24 22:04:27

本文主要是介绍C++实现快速排序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;

int n = 0;
const int N = 100000 + 10;
int arr[N];

//快速排序
void quick_sort(int arr[], int l, int r)
{
	if (l >= r) return;
	int temp = arr[(l+ r) >> 1];
	int i = l - 1, j = r + 1;
	while (i < j)
	{
		do i++; while (arr[i] < temp);
		do j--; while (arr[j] > temp);  //注意,你要写成是j++
		if (i < j) swap(arr[i], arr[j]);
	}
	quick_sort(arr, l, j);
	quick_sort(arr,  j+1, r); //注意上面是j,下面就要写成j+1
}

int main()
{
	scanf("%d", &n);
	for (int i = 0; i < n; i++) scanf("%d", &arr[i]);

	quick_sort(arr, 0, n - 1);
	for (int i = 0; i < n; i++) printf("%d ", arr[i]);

}

 



这篇关于C++实现快速排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程