zoukankan      html  css  js  c++  java
  • 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);
    
        }
    }
  • 相关阅读:
    Javascript异步数据的同步处理方法
    《Node.js In Action》笔记之流程控制
    《第一行代码》笔记
    【转向Javascript系列】深入理解Web Worker
    【转向Javascript系列】从setTimeout说事件循环模型
    以todomvc为例分析knockout、backbone和angularjs
    25个国内顶级技术开发团队Github
    配置Redis作为缓存(六种淘汰策略)
    JVM性能优化 初识JVM
    JVM性能优化垃圾回收算法详解
  • 原文地址:https://www.cnblogs.com/tdws/p/4111720.html
Copyright © 2011-2022 走看看