快速排序

来源:互联网 发布:陈程编程 编辑:程序博客网 时间:2024/05/22 15:05
快速排序的基本思想:</p><p>通过排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按着此方法对这两部分数据分别进行快速排序,整个排序过程递归进行,以此达到整个数据变成有序序列。
#include <iostream>using namespace std;int DevidePos(int arr[], int start, int end)  //以最后一个元素为主元素,{     //把小于和大于这个元素的数分在这个数的两边int x = arr[end];int i = start - 1;int j;for (j = start; j < end; j++){if (arr[j] <= x){i++;swap(arr[i], arr[j]);}}swap(arr[i + 1], arr[end]);return i + 1;}void QuickSort(int arr[], int start, int end){int q;if (start < end)//进行迭代{q = DevidePos(arr, start, end);QuickSort(arr, start, q - 1);QuickSort(arr, q + 1, end);}}int main(){int arr[] = {2, 7 , 8, 6, 3, 1, 5, 4};int len = sizeof(arr)/sizeof(int);QuickSort(arr, 0, len - 1);for (int i = 0; i < len; i++){cout<<arr[i]<<" ";}}

0 0
原创粉丝点击