栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

排序算法---选择、冒泡、插入、希尔

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

排序算法---选择、冒泡、插入、希尔

交换方法
public static void swap(int[] arr, int index1, int index2){
        arr[index1] ^= arr[index2];
        arr[index2] ^= arr[index1];
        arr[index1] ^= arr[index2];

    }
一、选择排序
public static void selectionSort(int[] arr){
       for (int i = 0; i < arr.length; i++) {
           int minPos = i;
           for (int j = i + 1; j < arr.length; j++) {
               if(arr[j] < arr[minPos]){
                   minPos = j;
               }
           }
           if(i == minPos){
               continue;
           }
           swap(arr,i, minPos);
       }
   }
二、冒泡排序
public static void bubbleSort(int[] arr){
       int len = arr.length;
       for(int P = len-1; P >= 0; P--){
           //判断是否排序完成
           int flag = 0;
           for(int i = 0; i < P; i++){
               if(arr[i] > arr[i+1]){
                   swap(arr,i, i+1);
                   flag = 1;
               }
           }
           //数组有序后,退出
           if(flag == 0) {
               break;
           }
       }
   }
三、插入排序
public static void insertionSort(int[] arr){
       int len = arr.length;

       for(int i = 1; i < len; i++){
           int temp = arr[i];
           int j = 0;
           for(j = i; j > 0 && arr[j-1] > temp; j--){
               arr[j] = arr[j-1];
           }
           arr[j] = temp;
       }
   }
四、希尔排序

优化的选择排序,按照间隔进行排序。默认间隔是N/2。

public static void shellSort(int[] arr){
        int len = arr.length;
        for(int D = len/2; D > 0; D /= 2){
            for(int P = D; P < len; P++){
                int temp = arr[P];
                int j = 0;
                for(j = P; j >= D && arr[j - D] > temp; j -= D){
                    arr[j] = arr[j-D];
                }
                arr[j] = temp;
            }
        }
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/949006.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号