版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
冒泡排序(可升序 也可降序)
一、设计一个方法 给数字进行排序只能升序
是否需要提供条件—数组 返回值——不用
public void orderArray(int[]array){
for(int i=1;i<array.length;i++){//控制执行的轮次——数组的长度
for(int j=array.length-1;j>=1;j--){//控制比较次数
if(array[j]<array[j-1]) {
int temp=array[j];
array[j]=array[j-1];
array[j-1]=temp;
}
}
}
}
二、 设计一个方法 给数字进行排序(既能升序又能降序)
是否需要提供条件—数组 提供一个排序的规则Boolean 返回值——不用
//flag=true 升序排列 flag=false 降序排列
public void orderArray(int[]array,boolean flag){
if(flag){// 升序排列
for(int i=1;i<array.length;i++){//控制执行的轮次——数组的长度
for(int j=array.length-1;j>=1;j--){//控制比较次数
if(array[j]<array[j-1]) {
int temp=array[j];
array[j]=array[j-1];
array[j-1]=temp;
}
}
}
}
else{// 降序排列
for(int i=1;i<array.length;i++){//控制执行的轮次——数组的长度
for(int j=array.length-1;j>=1;j--){//控制比较次数
if(array[j]>array[j-1]) {
int temp=array[j];
array[j]=array[j-1];
array[j-1]=temp;
}
}
}
}
}
优化
- (if——else) 单分支语法结构—— 一样的代码可以做优化
- 不管走哪个分支一样的代码都要走一遍
上述代码if else 就差一个符号
优化一:
还是存在重复代码?
优化二: