冒泡排序与快速选择
public class HomeWork1 {
public static void main(String[] args) {
int[] array=new int[] {4,2,5,8,3,10,1};
System.out.println("排序前顺序为:4,2,5,8,3,10,1");
maoPao(array);
select(array);
}
public static void maoPao(int[] array){
int temp=0;
//第一层循环控制几轮,轮数=长度-1
for(int j=0; j<array.length-1;j++){
//交换次数
for(int i=0;i< array.length-j-1;i++) {
if (array[i] < array[i + 1]) {
temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
}
System.out.print("冒泡后排序:");
System.out.println();
for (int j = 0; j < array.length; j++) {
System.out.print(array[j]+" ,");
}
}
//选择排序
public static void select(int[] array){
// for循环嵌套实现
for (int j=0;j<array.length-1;j++){
for (int i=1+j;i<array.length;i++){
if(array[i]>array[j]){
int temp=array[j];
array[j]=array[i];
array[i]=temp;
}
}
}
//实现遍历
System.out.println();
System.out.println("选择排序结果:");
for (int x = 0; x < array.length; x++) {
if (x == array.length - 1) {
System.out.print(array[x]);
} else {
System.out.print(array[x]+" ," );
}
}
}
}
二分法
public static void main(String[] args) {
love();
}
public static int love(){
int x1=scanner.nextInt();
int[] array=new int[]{1,3,4,6,9,18,22};
int left=0,right=array.length-1;
while(left<=right){
int mid=(right+left)/2;
if(array[mid]<x1){
left=mid+1;
}
else if(array[mid]>x1){
right=mid-1;
}
else if(array[mid]==x1){
System.out.println("该数下标为:"+mid);
return mid;
}
}
return -1;/*如果没有找到返回 -1*/
}