您的位置:首页 > 产品设计 > UI/UE

著名的快数排序Quick-sort

2007-01-07 22:32 525 查看

#include "stdafx.h"


#include <iostream>




int Partition(int A[], int p, int r)




...{


int x = A[r];//选择x=A[r]作为主元


int i = p -1;


for(int j = p; j <= r-1; j++)


if(A[j] <= x)//假设A[i]大于x,那么就不用移动了。第二个语句swap()将x移动到最左方,所以比x大的数都在右方。




...{ //假设A[j]小于x,因为A[i]的下标i始终小于等于j,那么说明A[i]是大于x的值,否则便是被移动了。


i = i+1;//这样第一个函数swap()将把大于x的A[i]与小于x的A[j]互相交换位置。


std::swap(A[i], A[j]);


}


std::swap(A[i+1], A[r]);




return i+1;




}




void Quick_Sort(int A[], int p ,int r)




...{


if(p < r)




...{


int q = Partition(A, p, r);


Quick_Sort(A, p, q-1);


Quick_Sort(A, q, r);


}




}






int main(int argc, char* argv[])




...{






int C[12] = ...{100,4,8,7,6,32,5,4,8,1,2,1};


Quick_Sort(C, 0, 11);


for(int i = 0; i <= 11; i++)


std::cout<<C[i]<<" ";


return 0;


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: