当前位置: 代码迷 >> 综合 >> 用二分法法寻找一个数组中一个数据是该数组的第几个元素; 冒泡排序
  详细解决方案

用二分法法寻找一个数组中一个数据是该数组的第几个元素; 冒泡排序

热度:58   发布时间:2024-02-29 13:36:10.0
public class De {
//寻找一个数组中一个数据是该数组的第几个元素
public static int binarSearch (int[] array,int key){int left = 0;                        int right = array.length-1;while (left  <= right ) {      int mid = ( left + right )/2;if (array[mid] < key){left = mid+1;}else if(array[mid] > key){right = mid-1;}else {return mid;                    }}return -1;//  没有找到该数
}public static void main3(String[] args) {int[] array = new int[10000];for (int i = 0; i < 10000 ; i++) {array[i] = i;}int ret = binarSearch(array,5644);System.out.println(ret);

//冒泡法排序

   //优化:  public static void pubSort (int[] array) {if (array == null || array.length == 0){return ;}//i是趟数boolean flg = false;for (int i = 0; i < array.length-1 ; i++) {flg = false;for (int j = 0; j < array.length-1-i ; j++) {if (array[j] > array[j + 1]) {int a = array[j];array[j] = array[j + 1];array[j + 1] = a;flg = true;   //判断是否已经排序好}}if (flg == false){break;}}}public static void main2(String[] args) {int[] array= {1,5,3,6,9,7,8};maSort(array);System.out.println(Arrays.toString(array));}

//冒泡排序

public static void maSort (int[] array) {int a = 0;if (array == null || array.length == 0){return ;}//i是趟数for (int i = 0; i < array.length-1 ; i++) {for (int j = 0; j < array.length-1-i ; j++) {if (array[j] > array[j+1]){a = array[j];array[j] = array [j+1];array[j+1] = a;}}}
}
public static void main1(String[] args) {int[] array = {8,2,4,3,9,5};maSort(array);System.out.println(Arrays.toString(array));
}

}

  相关解决方案