import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
public class _2_25bDemo {
public static void main(String[] args) {
int[] values={6,1,7,2,8,0,9,3,5,4};
testBubbleSort(values);
int index=testBinarySearch(values,6);
System.out.println(index);
// 使用Arrays.sort逆序排序
Integer[] integers1 = Arrays.stream(values).boxed().toArray(Integer[]::new);
Comparator cmp = new MyComparator();
Arrays.sort(integers1,cmp);
System.out.println(Arrays.toString(integers1));
}
//冒泡排序
public static void testBubbleSort(int[] values){
for(int i=0;i<values.length-1;i++){
boolean flag=true;
for(int j=0;j<values.length-1-i;j++){
if(values[j]>values[j+1]){
int temp=values[j];
values[j]=values[j+1];
values[j+1]=temp;
flag=false;
}
}
if(flag==true){ //算是个小小的优化
break;
}
}
System.out.println(Arrays.toString(values));
}
//二分查找
public static int testBinarySearch(int[] values,int k){
int left=0;
int right=values.length-1;
while(left<=right){
int mid=(left+right)/2;
if(values[mid]==k){
return mid;
}else if(values[mid]<k){
left=mid+1;
}else{
right=mid-1;
}
}
return -1;
}
}
//实现对象的比较 Integer
class MyComparator implements Comparator<Integer> {
@Override
public int compare(Integer o1,Integer o2) {
// 当o1<o2 return 1 进行交换 否则则反之
// if(o1<o2){
// return 1;
// }else if(o1>o2){
// return -1;
// }else{
// return 0;
// }
return o2-o1;
}
}
排序和查找
于 2022-02-25 19:51:38 首次发布