• 常见排序算法


    package com.sort;
    
    import java.util.Arrays;
    
    /**
     * 〈一句话功能简述〉;
     * 〈冒泡排序〉
     *
     * @author jxx
     * @see [相关类/方法](可选)
     * @since [产品/模块版本] (可选)
     */
    public class pop {
    
        public static void main(String[] args){
            int[] arr = {2,4,5,1,7,9};
            System.out.println(Arrays.toString(sortPop(arr)));
        }
    
        public static int[] sortPop(int[] arr) {
            for(int i=0;i<arr.length - 1;i++) {
                for(int j=0;j<arr.length - 1 - i;j++) {
                    if(arr[j] > arr[j+1]) {
                        int tmp = arr[i];
                        arr[i] = arr[j+1];
                        arr[j+1] = tmp;
                    }
                }
            }
            return arr;
        }
    }
    package com.sort;
    
    import java.util.Arrays;
    
    /**
     * 〈一句话功能简述〉;
     * 〈快速排序〉
     *
     * @author jxx
     * @see [相关类/方法](可选)
     * @since [产品/模块版本] (可选)
     */
    public class Rapid {
    
        public static void main(String[] args){
            int[] arr = {2,4,5,1,7,9};
            System.out.println(Arrays.toString(sortRapid(arr,0,arr.length-1)));
        }
    
        public static int[] sortRapid(int[] arr,int low,int high) {
            int i,j,temp,t;
            if(low > high) {
                return null;
            }
            temp = arr[low];
            i=low;
            j=high;
            while(i<j) {
                //右边
                while(temp<=arr[j]&&i<j) {
                    j--;
                }
                //左边
                while(temp>=arr[i]&&i<j) {
                    i++;
                }
                if(i < j) {
                    //交换位置
                    t = arr[i];
                    arr[i] = arr[j];
                    arr[j] = t;
                }
            }
            //将参考数挪到指定位置
            arr[low] = arr[i];
            arr[i] = temp;
            //递归左边
            sortRapid(arr,low,j-1);
            //递归右边
            sortRapid(arr,j+1,high);
            return arr;
        }
    }
    package com.search;
    
    /**
     * 〈一句话功能简述〉;
     * 〈二分查找法〉
     *
     * @author jxx
     * @see [相关类/方法](可选)
     * @since [产品/模块版本] (可选)
     */
    public class binSearch {
    
        public static void main(String[] args){
            int[] arr = {1,2,3,4,5,6};
            System.out.println(binSearch(3,arr));
            System.out.println(binSearchReturn(5,arr,0,arr.length-1));
        }
    
        public static int binSearch(int flag,int[] arr) {
            if(arr.length == 0) {
                return -1;
            }
            int start = 0;
            int end = arr.length - 1;
            while(start <= end) {
                int mid = (start+end)/2;
                if(flag == arr[mid]) {
                    return mid;
                } else if(flag < arr[mid]) {
                    end = mid - 1;
                } else {
                    start = mid + 1;
                }
            }
            return -1;
        }
    
        public static int binSearchReturn(int flag,int[] arr,int start,int end) {
            if(start > end) {
                return -1;
            } else {
                int mid = (start+end)/2;
                if(flag == arr[mid]) {
                    return mid;
                } else if(flag < arr[mid]) {
                    return binSearchReturn(flag,arr,start,mid - 1);
                } else {
                    return binSearchReturn(flag,arr,mid + 1,end);
                }
            }
        }
    }
  • 相关阅读:
    MongoDB初期学习
    springboot+camunda实现工作流1
    一文带你深入理解位运算
    【林超所长】学科01:熵与热力学重要模型
    PM常用的讨论社区及牛人帖子
    C# 2.0 的特性 总结
    小脚本解决生活问题
    Domain Adaption 之 TCA等算法
    强化学习ddpg算法
    bindkey用法
  • 原文地址:https://www.cnblogs.com/jxxblogs/p/12209828.html
Copyright © 2020-2023  润新知