• Java写 插入 选择 冒泡 快排


    /**
     * Created by wushuang on 2014/11/19.
     */
    public class SortTest {
    
        @Test
        public void mainTest() {
            int[] arr = new int[]{1, 8, 3, 2, 5, 6, 100, 23, 30, 12, 90, 3265, 0};
            //insertSort(arr);
            // selectionSort(arr);
    //        popSort(arr);
            quickSort(arr, 1, arr.length - 1);
            System.out.println(StringUtils.join(arr, ','));
        }
    
        /**
         * 插入
         * 选择
         * 冒泡
         */
        public void insertSort(int[] targetArr) {
            for (int i = 1; i < targetArr.length; i++) {
                if (targetArr[i - 1] > targetArr[i]) {
                    int targetItem = targetArr[i];
                    int j = i - 1;
    
    
                    while (j >= 0 && targetArr[j] > targetItem) {
                        targetArr[j + 1] = targetArr[j];
                        j--;
                        System.out.println(j);
                    }
                    targetArr[j + 1] = targetItem;
                }
    
            }
            System.out.println("insertSort:");
            System.out.println(StringUtils.join(targetArr, ','));
    
        }
    
        public void selectionSort(int[] targetArr) {
            int minIndex = 0;
            for (int i = 0; i < targetArr.length - 1; i++) {
                minIndex = i;
                for (int j = i + 1; j < targetArr.length; j++) {
                    if (targetArr[j] < targetArr[minIndex]) {
                        minIndex = j;
                    }
                }
                int temp = targetArr[i];
                targetArr[i] = targetArr[minIndex];
                targetArr[minIndex] = temp;
            }
            System.out.println("selectionSort:");
            System.out.println(StringUtils.join(targetArr, ','));
        }
    
    
        public void popSort(int[] targetArr) {
            for (int i = 0; i < targetArr.length - 1; i++) {
                for (int j = 0; j < targetArr.length - i - 1; j++) {
                    if (targetArr[j + 1] < targetArr[j]) {
                        int temp = targetArr[j + 1];
                        targetArr[j + 1] = targetArr[j];
                        targetArr[j] = temp;
                    }
                }
            }
            System.out.println("popSort:");
            System.out.println(StringUtils.join(targetArr, ','));
        }
    
        public void quickSort(int[] targetArr, int leftIndex, int rightIndex) {
            if (leftIndex>rightIndex){
    //            System.out.println("stop");
    //            System.out.println(leftIndex);
    //            System.out.println(rightIndex);
                return;
            }
            int temp = targetArr[leftIndex];
            int i = leftIndex;
            int j = rightIndex;
            while (i != j) {
                while (targetArr[j] >= temp && i < j) {
                    j--;
                }
                while (targetArr[i] <= temp && i < j) {
                    i++;
                }
                if (i < j) {
                    int iTempVal = targetArr[i];
                    targetArr[i] = targetArr[j];
                    targetArr[j] = iTempVal;
                }
            }
            targetArr[leftIndex] = targetArr[i];
            targetArr[i] = temp;
    
            quickSort(targetArr, 0, i - 1);
            quickSort(targetArr, i + 1, rightIndex);
    
        }
    }
  • 相关阅读:
    【并查集】亲戚
    【图论】Car的旅行线路 NOIP 2001
    【贪心】排座椅
    【DP】花店橱窗布置
    【NOIP】NOIP考纲总结+NOIP考前经验谈
    【NOIP】考前须知
    NOIP 2016 PJ T4 魔法阵
    NOIP 2016 PJ T3 海港
    【高精度】麦森数 NOIP 2003
    【带权并查集】食物链 NOIP 2001
  • 原文地址:https://www.cnblogs.com/tdws/p/4111720.html
Copyright © 2020-2023  润新知