冒泡排序、选择排序、简单二分查找

1、冒泡排序

  关于冒泡排序,其实就是相邻两两对比,正序反序,大的(小的)往后挪一个位置,第一遍最大(最小)肯定会在最后了,

  然后第二次排序不计最后一个元素进行重排,然后以此类推

 

 public static void main(String[] args){

        int score[] = {3,5,8,3,5,6,9,7,4,1,5,98,7,6,12,7,45,56,5};
        for ( int i=0;i<score.length-1;i++) {
            for (int j=0;j<score.length-i-1;j++){
                if(score[j]>score[j+1]){
                    int temp =score[j];
                    score[j]=score[j+1];
                    score[j+1]=temp;
                }
            }
        }

        for ( int x: score) {
            System.out.println(x);

        }

    }

  2、选择排序

  关于选择排序,选择排序是怎样的,就是拿第一个,跟后面23456挨个去对比,如果第二个比第一个大,哎,记住第二个的下标,拿第二个跟第三个比去,以此类推,记住最大或最小的下标,然后跟第一个互换。每次第一个、第二个.....就是参与排序的里面总是最大或者最小的了

public static void main(String[] args) {
        int[] score={3,5,8,3,5,6,9,7,4,1,5,98,7,6,12,7,45,56,5};
        for(int i = 0; i < score.length - 1; i++) {
            int step = i;
            for(int j = step + 1; j < score.length; j++){
                if(score[j] > score[step]){
                    step = j;
                }
            }
            if(i != step){
                int temp = score[i];
                score[i] = score[step];
                score[step] = temp;
            }
        }
        for(int x:score){
            System.out.println(x);
        }
    }

  3、折半查找:

public static void main(String[] args) {

        int[] nums = {1, 2, 3, 4, 5, 6, 7, 8,9};
        int step = mid(nums, 3);
        System.out.println(step);
    }

    public static int mid(int[] nums, int num) {

        int left = 0;
        int right = nums.length;

        while (left <= right) {
            int mid = (left + right) / 2;
            if (nums[mid] == num) {
                return mid;
            } else if (num < nums[mid]) {
                right = mid;
            } else if (num > nums[mid]) {
                left = mid + 1;
            }

        }
        return -1;
    }

 

posted @ 2017-11-08 12:42  LewsKay  阅读(172)  评论(0编辑  收藏  举报