栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

快速排序算法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

快速排序算法

快速排序算法是对冒泡排序的一种改进方法
void QuickSort(Type a[],int p,int r)
{
	if(px, x放中间
	while(1)
	{
		while(a[++i]<=x&&ix的数位置下标i,找不到时i==r 
		while(a[--j]>x);       //从右向左找<=x的数位置下标j,找不到时j==p 
		if(i>=j) break;        //一遍扫描结束,退出循环 
		t=a[i];
		a[i]=a[j];
		a[j]=t;
	} 
		a[p]=a[j];  //首元素a[p]与a[j]交换 
		a[j]=x;    //x放在分界点 
		return j;	//j是分裂位置	
}

 快速排序算法的性能取决于划分的对称性。通过修改算法partition,可以设计出采用随机选择策略的快速排序算法。可以在a[p,r]中随机选出一个元素作为划分基准。可以期望划分是较对称的。

int  RandomizedPartition(int a[],int p,int r)
{	
	int i=Random(p,r);
	Swap(a[i],a[p]);
	return Partition(a,p,r);
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/755967.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号