首页 > 学院 > 开发设计 > 正文

排序

2019-11-11 05:18:48
字体:
来源:转载
供稿:网友
/** * 选择排序:每次都拿第一个元素进行比较 * @param arr */ public static void selectSort(int[] arr) { for (int x = 0; x < arr.length - 1; x++) { for (int y = x + 1; y < arr.length; y++) { if (arr[x] > arr[y]) { int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } } } } /** * 冒泡排序:两两比较 * 最值出现在最后一位 * @param arr */ public static void bubbleSort(int[] arr){ for(int x=0;x<arr.length-1;x++){ for(int y=0;y<arr.length-x-1;y++){//-x:让每一次比较元素减少,-1:防止数组下标越界 if(arr[y]>arr[y+1]){ int temp=arr[y]; arr[y]=arr[y+1]; arr[y+1]=temp; } } } }//二分查找法。必须有前提:数组中的元素要有序。 public static int halfSeach_2(int[] arr,int key){ int min,max,mid; min = 0; max = arr.length-1; mid = (max+min)>>1; //(max+min)/2; while(arr[mid]!=key){ if(key>arr[mid]){ min = mid + 1; } else if(key<arr[mid]) max = mid - 1; if(max<min) return -1; mid = (max+min)>>1; } return mid; }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表