白羽
2018-07-26
来源 :网络
阅读 1742
评论 0
摘要:本文将带你了解Exchange服务器之起泡排序/快速排序,希望本文对大家学Exchange有所帮助
void BubbleSort(int * obj, int n)
{ int bound;
int exchange = n-1 ;
while(exchange != 0 )
{ //bound此次比较的边界
bound = exchange;
//exchange混乱区域下标
exchange = 0;
for(int j=0 ;j <bound ;++j)
{
if( obj[j] > obj[j+1])
{
int tem = obj[j];
obj[j]=obj[j+1];
obj[j+1]=tem;
exchange = j;
}
}
}
}
12345678910111213141516171819202122
需要排序的区域,自己写的时候是每次-1,看了书才发现调换位置的下标表示不保证顺序,所以可以优化。
时间复杂度 最优是O(n)也就是数组一开始就是正序,只要遍历一次也就是n-1;
最差是O(n2) ,数组完全逆序。
快速排序
void swap(int * p ,int i , int j )
{
int tem = p[i];
p[i] = p[j];
p[j]=tem;
}
int Partition(int * r ,int first, int end)
{
int lptr =first;
int rptr = end;
int flag = first;
while(flag != rptr)
{
while(rptr != flag)
{
if(r[flag]>r[rptr])
{
swap(r,flag,rptr);
flag =rptr;
continue;
}
rptr--;
}
while(lptr != flag)
{
if( r[lptr] >r[flag])
{
swap(r,lptr, flag);
flag = lptr;
continue;
}
++lptr;
}
}
return flag;
}
void QuickSort(int * r , int first , int end)
{ int pivot ;
if(first <end)
{
pivot = Partition( r , first, end);
QuickSort(r,first,pivot-1);
QuickSort(r,pivot+1,end);
}
}
快排是起泡排序的改进;
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标系统运维之Exchange频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号