int[] num =newint[20];int target;//查找索引int left =0,right =num.length-1;while(left <= right){int mid = left +(right-left)/2;if(num[mid]== target){return mid;}elseif(num[mid]< target){
left = mid +1;}elseif(num[mid]> target){
right = mid-1;}}return-1;
查找左边界
int[] num =newint[20];int target;//查找左边界int left =0,right =num.length;while(left < right){int mid = left +(right-left)/2;if(num[mid]== target){
right = mid;}elseif(num[mid]< target){
left = mid +1;}elseif(num[mid]> target){
right = mid;}}return left;
查找右边界
int[] num =newint[20];int target;//查找右边界int left =0,right =num.length;while(left < right){int mid = left +(right-left)/2;if(num[mid]== target){
left = mid+1;}elseif(num[mid]< target){
left = mid +1;}elseif(num[mid]> target){
right = mid;}}return left-1;
冒泡排序算法
依次比较相邻的两个元素,如果左边的元素大于右边的,就交换,直到没有相邻的元素需要交换位置
private int[] array(int[] arr){
int len = arr.length;
for (int i = 1; i <arr.length ; i++) {
for (int j = 0;j<arr.length;j++){
int temp;
if(arr[j]>arr[j+1]){
temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
插入排序算法
讲一个数据插入已经排序好的序列中,从而得到一个新的有序数据
publicstaticint[]arrs(int[] arr){int len = arr.length;for(int i =1;i<len;i++){int temp = arr[i];int j ;for( j = i-1;j>=0;j--){if(temp>arr[j]){break;}else{
arr[j+1]= arr[j];}}
arr[j+1]= temp;}return arr;}