zl程序教程

您现在的位置是:首页 >  后端

当前栏目

c++实现快速排序算法

C++算法排序 实现 快速
2023-09-14 09:07:08 时间
#include <unistd.h>
#include <stdio.h>

using namespace std;

void quickSort(int arr[], int left, int right) {
	if (left > right) {
		return;
	}

	int i = left;
	int j = right;
	int base = arr[left];
	while(i != j) {
		while(arr[j] >= base && i<j) {
			j--;
		}

		while(arr[i] <= base && i<j) {
			i++;
		}
		
		if(i<j) {
			int tmp = arr[i];
			arr[i] = arr[j];
			arr[j] = tmp;
		}
	}

	arr[left] = arr[i];
	arr[i] = base;

	quickSort(arr, left, i-1);
	quickSort(arr, i+1, right);
}

int main() {
	printf("----------before--------\n");
	int arr[] = {8,5,4,6,2,7,9,1,0,3};
	for(int i=0; i<10; i++) {
		printf("arr[%d]=%d\n", i, arr[i]);
	}

	quickSort(arr, 0, 9);
	
	printf("--------after---------\n");
	for(int k=0; k<10; k++) {
		printf("arr[%d]=%d\n", k, arr[k]);
	}
}