重庆好点的Java设计培训机构

重庆达内IT教育

重庆好点的Java设计培训机构?达内java培训,专注IT培训19年,100万学生的选择!26大IT方向,培训Java/UI设计/Web前端/软件测试/网络营销等!达内java培训可先学习后付款!

达内Java培训机构,以Java培训班起家,专注Java培训19年,讲师大多来自行业企业,课程设置更切合企业实际用人需求,学习Java开发技术选达内,美国上市教育机构,双师教学模式效果更有保障。

本文达内小编给大家介绍一下排序,看完希望大家能掌握。

先介绍排序需要用到的工具:左指针、右指针、中间值。

用到的思想:递归

取数组中个元素作为中间值,然后左右指针分别跟中间值进行比较,小于中间值的放在左边,大于中间值的放在右边,当左右指针重合时,重合位置处的左边数值全部比中间值小,右边全部比中间值大。

这样数组就分成了两个部分,再对这两部分如法炮制,分别又生成了两个数组,依次递归下去,递归结束的条件是左指针大于或者等于右指针。

public static void quickSort(int[]a,int left,int right){

if(left<right){

int index=getIndex(a,left,right);

quickSort(a,left,index-1);

quickSort(a,index+1,right);

}

}

public static int getIndex(int[]a,int left,int right){

int tmp=a[left];

while(left<right){

//用while循环,来判断右指针对应的数是否大于tmp,是的话不用交换,直接移动右指针即可

while(left<right&&a[right]>=tmp){

right--;

}

//顺序执行到这里,肯定是不满足上面的while循环条件,也就是右边的数要小于中间值,此时需要把右边的数换到左边

a[left]=a[right];

while(left<right&&a[left]<=tmp){

left++;

}

a[right]=a[left];

}

//当循环结束后,左右两边都分好大小,而指针重合位置处却没有值,需要把中间值放进来。

a[left]=tmp;

//返回两者相交处。

return left;

}

以上就是今天的Java设计知识分享,可点击页面客服留言或咨询,或者直接拨打页面热线联系到我们,期待您的咨询。

领取试听课
每天限量名额,先到先得
温馨提示:为不影响您的学业,来 重庆JAVA培训 校区前请先电话或QQ咨询,方便我校安排相关的专业老师为您解答
  • 详情请进入 重庆达内IT教育

关于我们 | 招生信息 | 新闻中心 | 学校动态

版权所有:搜学搜课(www.soxsok.com)