java快速排序优化
来源:互联网 发布:网络布线视频教程下载 编辑:程序博客网 时间:2024/06/06 01:01
private<TextendsComparable<?superT>>
voidquickSort(T[]targetArr,intstart,intend)
{
inti=start,j=end;
Tkey=targetArr[start];
while(i<j)
{
/*按j--方向遍历目标数组,直到比key小的值为止*/
while(j>i&&targetArr[j].compareTo(key)>=0)
{
j--;
}
if(i<j)
{
/*targetArr[i]已经保存在key中,可将后面的数填入*/
targetArr[i]=targetArr[j];
i++;
}
/*按i++方向遍历目标数组,直到比key大的值为止*/
while(i<j&&targetArr[i].compareTo(key)<=0)
/*此处一定要小于等于零,假设数组之内有一亿个1,0交替出现的话,而key的值又恰巧是1的话,那么这个小于等于的作用就会使下面的if语句少执行一亿次。*/
{
i++;
}
if(i<j)
{
/*targetArr[j]已保存在targetArr[i]中,可将前面的值填入*/
targetArr[j]=targetArr[i];
j--;
}
}
/*此时i==j*/
targetArr[i]=key;
/*递归调用,把key前面的完成排序*/
this.quickSort(targetArr,start,i-1);
/*递归调用,把key后面的完成排序*/
this.quickSort(targetArr,j+1,end);
}
voidquickSort(T[]targetArr,intstart,intend)
{
inti=start,j=end;
Tkey=targetArr[start];
while(i<j)
{
/*按j--方向遍历目标数组,直到比key小的值为止*/
while(j>i&&targetArr[j].compareTo(key)>=0)
{
j--;
}
if(i<j)
{
/*targetArr[i]已经保存在key中,可将后面的数填入*/
targetArr[i]=targetArr[j];
i++;
}
/*按i++方向遍历目标数组,直到比key大的值为止*/
while(i<j&&targetArr[i].compareTo(key)<=0)
/*此处一定要小于等于零,假设数组之内有一亿个1,0交替出现的话,而key的值又恰巧是1的话,那么这个小于等于的作用就会使下面的if语句少执行一亿次。*/
{
i++;
}
if(i<j)
{
/*targetArr[j]已保存在targetArr[i]中,可将前面的值填入*/
targetArr[j]=targetArr[i];
j--;
}
}
/*此时i==j*/
targetArr[i]=key;
/*递归调用,把key前面的完成排序*/
this.quickSort(targetArr,start,i-1);
/*递归调用,把key后面的完成排序*/
this.quickSort(targetArr,j+1,end);
}
1 0
- java快速排序,优化
- java快速排序优化
- java 快速排序优化版
- java 快速排序优化版
- java快速排序的优化
- Java排序算法优化--快速排序【温故而知新】
- 快速排序及优化(Java版)
- java快速排序-原始未优化
- 快速排序及其优化
- 快速排序及优化
- 快速排序及其优化
- 优化 快速排序
- 快速排序(优化版)
- 快速排序及优化
- 快速排序的优化
- 快速排序的优化
- 快速排序<优化>
- 随机优化快速排序
- springmvc 配置多视图(jsp,freemarker,HTML等)
- python常见问题记录
- 3.4.内部类与匿名类
- Hadoop面试
- 4592: [Shoi2015]脑洞治疗仪
- java快速排序优化
- IPV4 ipV6区别
- 421. Maximum XOR of Two Numbers in an Array
- 系统学习深度学习(十)--优化算法
- 跨脚本攻击之反射型xss
- 加入购物车抛物线效果的基本实现(一)
- android实现通讯录分组StickyListHeadersListView的使用
- Python中的函数
- 常见数据结构与算法的 Python 实现