排序,折半查找
来源:互联网 发布:程序员培训班多少钱 编辑:程序博客网 时间:2024/04/28 00:53
- //选择排序
- public static void selectSort(int[] arr){
- for(int i=0; i<arr.length-1; i++){
- for(int j=i+1; j<arr.length; j++){
- if(arr[i]>arr[j]){
- int temp=arr[i];
- arr[i]=arr[j];
- arr[j]=temp;
- }
- }
- }
- }
-
- //冒泡排序
- public static void bubbleSort(int[] arr){
- for(int i=0; i<arr.length-1; i++){
- for(int j=0; j<arr.length-i-1; j++){
- if(arr[j]>arr[j+1]){
- int temp=arr[j];
- arr[j]=arr[j+1];
- arr[j+1]=temp;
- }
- }
- }
- }
-
- //插入排序
- public static void insertSort(int[] arr){
- for(int i=0; i<arr.length-1; i++){
- int temp=arr[i];
- while(i>0 && arr[i-1]>temp){
- arr[i]=arr[i-1];
- i--;
- }
- arr[i]=temp;
- }
- }
- //折半查找
- public static int halfSearch(int[] arr, int key){
- int min=0, max=arr.length-1, mid;
- while(min<=max){
- mid=(min+max)>>1;
- if(key>arr[mid]){
- min=mid+1;
- }else if(key<arr[mid]){
- max=mid-1;
- }else
- return mid;
- }
- return min;
- }