最近在备考二级
复习 预习到排序这一块
前来整理一下快速排序的代码
快速排序的具体概念与演示:数据结构与算法基础——快速排序
#include<iostream>
using namespace std;
void swap(int *x,int *y){//交换
int temp;
temp = *x;
*x = *y;
*y = temp;
}
int partition(int arr[],int low,int high){//分类 以arr[high]为分界线 比arr[high]小放左边 比arr[high]大放右边
int pivot = arr[high];
int i = (low - 1);
int j;
for(int j = low; j <= high-1; j++){
if(arr[j] <= pivot){
i++;
swap(&arr[i],&arr[j]);
}
}
swap(&arr[i+1],&arr[high]);
return (i+1);
}
void quickSort (int arr[],int low,int high){//递归
if(low<high){
int pi = partition(arr, low, high);
quickSort(arr, low, pi-1);
quickSort(arr, pi+1, high);
}
}
int main(){
int arr[] = {2,3,6,1,9,4,5};
int low = 0;
int high = 6;
int i;
for(i=low;i<=high;i++){
printf("%d ",arr[i]);
}
printf("\n");
quickSort(arr,low, high);
for(i=low;i<=high;i++){
printf("%d ",arr[i]);
}
return 0;
}