【算法导论】用C++实现快速排序

来源:互联网 发布:互联网寒冬 知乎 编辑:程序博客网 时间:2024/05/21 17:02

本算法为【算法导论】7.1的C++实现,代码如下:

#include<iostream>void swap(int * a,int * b);int partition(int * array_list,int left,int right);void quick_sort(int * array_list,int left,int right);void Print();const int size = 8;int array_list [] ={2,8,7,1,3,5,6,4};int main(){quick_sort(array_list,0,size - 1);return 0;}void quick_sort(int * array_list,int left,int right){if(left >= right){return ;}int index = partition(array_list,left,right);quick_sort(array_list,left,index - 1);quick_sort(array_list,index + 1,right);}int partition(int * array_list,int left,int right){int index = left;int pivot = array_list[right];for(int i= left ; i< right; i++){if(array_list[i] < pivot){swap(&array_list[index],&array_list[i]);index ++;}}swap(&array_list[right],&array_list[index]);Print();return index;}void swap(int * a,int * b){int  tmp = *a;*a = *b;*b = tmp;}void Print(){for(int i=0;i< size;i++){std::cout<<array_list[i]<<"\t";}std::cout<<std::endl;}
运行结果为:

2       1       3       4       7       5       6       8
2       1       3       4       7       5       6       8
1       2       3       4       7       5       6       8
1       2       3       4       7       5       6       8
1       2       3       4       5       6       7       8

原创粉丝点击