冒泡排序和二分查找法

package com.demo;

import java.io.InputStream;


public class MaoPaoPaixu {

public static void main(String[] args) {
// TODO Auto-generated method stub
int[] n = {2,3,1,4,9,5,12,32,11,42,23,26};
//冒泡排序法
for(int i=0;i<n.length;i++){
for(int j=i+1;j<n.length;j++){
if(n[i]>n[j]){
int temp = n[i];
n[i]=n[j];
n[j]=temp;
}
}
}
for(int m=0;m<n.length;m++){
System.out.println(n[m]);
}
//二分查找法
int[] k = {1,3,4,5,5,6,6,7,7,9};
int m = binarySearch(k,6);
System.out.println(m+"----"+k[m]);
}
public static int binarySearch(int[] arr,int target){
int start=0;//low指第一个
int end=arr.length-1;//high指最后一个
if(end<=0) {return -1;}//排除[]情况
if(end==0){//排除[1]情况
return arr[0]==target?0:-1;
}
int middle;
while(start<=end){//两指针交错,查无此数
middle=(start+end)/2|0 ; //计算中间值,
if(arr[middle]==target){ //先进行判断 中间值是否等于要查找值
return middle;
}else if(target>arr[middle]){ //要查找值大于中间值 移动low左边至mid右边
start=middle + 1;
}else{//反之high移动到左边
end = middle-1;
}
}
//循环结束表示 两指针交错,查无此数
return -1;
}

}

posted @ 2023-01-29 16:56  swses  阅读(34)  评论(0编辑  收藏  举报