quicksort

来源:互联网 发布:ubuntu安装eclipse c 编辑:程序博客网 时间:2024/05/22 07:51
<span style="font-size:18px;">快速排序核心思想:选择原序列中的某个数作为基准值,通过某种操作,使得基准值的左边的序列都小于基准值,基准值右边的序列都大于基准值,然后分别将左右两边的序列按照同样的操作进行排序,直至整个序列有序为止。</span>
<span style="font-size:18px;">// ConsoleApplication51.cpp : 定义控制台应用程序的入口点。//QuickSort#include "stdafx.h"#include<iostream>#include<string>using namespace std;int Partition(int *a, int low, int high){int p;p = a[low];while (low < high){//p = a[low];while (low<high &&a[high]>=p)high--;a[low] = a[high];while (low < high &&a[low] <= p)low++;a[high] = a[low];}a[low] = p;return low;}void QuickSort(int *a, int low, int high){if (low < high){int p = Partition(a, low, high);QuickSort(a, low, p - 1);QuickSort(a, p + 1, high);}}void test(int *a,int n){int low = 0;int high = n-1;QuickSort(a, low, high);for (int i = 0; i < n; i++)cout <<a[i] <<" " ;}int _tmain(int argc, _TCHAR* argv[]){int a[5] = {4,7,2,1,5};test(a, 5);system("pause");return 0;}</span>
<span style="font-size:18px;"><img src="http://img.blog.csdn.net/20160818205042585?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></span>

0 0