• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

C++随机化快速排序代码

OC/C/C++ 水墨上仙 1783次浏览

C++随机化快速排序代码

#include <iostream>

using namespace std;

void swap(int &a,int &b)
{
	int temp = a;
	a =b;
	b = temp;

}
int rand(int low,int hight)
{

	int size = hight -low +1;
	return low +rand()%size;
}
int partition(int data[],int low,int hight)
{
   swap(data[rand(low,hight)],data[low]);
   int key = data[low];
   int i = low -1;
   for ( int j = low; j < hight; j++)
   {
	   if ( data[j] <= key)
	   {
		   i++;
		   swap(data[i],data[j]);
	   }
   }

   swap(data[i+1],data[hight]);
   return i+1;

}

void quitsort(int data[],int low,int hight)
{

	if ( low <hight)
	{
        int k = partition(data,low,hight);
		quitsort(data,low,k-1);
		quitsort(data,k+1,hight);
	}
}


int main()
{
	 int a[4] ={5,3,2,1};
	 quitsort(a,0,4);
     for (int i = 0; i < 4; i++)
     {
		 cout<<a[i]<<endl;
     }
	 return 0;
}


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明C++随机化快速排序代码
喜欢 (0)
加载中……