zoukankan      html  css  js  c++  java
  • 八大排序算法~简单选择排序【记录下标k变量的作用】

    八大排序算法~简单选择排序【记录下标k变量的作用】

    1,思想:打擂台法,数组中的前n-1个元素依次上擂台“装嫩”,后边的元素一个挨着一个不服,一个一个上去换掉它

    2,优化:通过记录下标进行优化,减少交换的次数

    //简单选择排序思想:打擂台法,数组中的前n-1个元素依次上擂台“装嫩”,后边的元素一个挨着一个不服,一个一个上去换掉它
        public static void main(String[] args) {
            int[] arr = {1, 4, 0, 6, 2, 7};
    //        for (int i = 0; i < arr.length -1; i++){
    //            for(int j = i + 1; j <= arr.length - 1; j++){
    //                if(arr[i] > arr[j]){
    //                    int temp = arr[i];
    //                    arr[i] = arr[j];
    //                    arr[j] = temp;
    //                }
    //            }
    //        }
            //优化一下,通过具有标记作用的下标变量k(标记出最小元素),去标记所有元素比较完的最终结果后,
            // 然后在擂台上的元素,再跟有标记记号的元素进行交换
            for (int i = 0; i < arr.length -1; i++){
                int k = i;
                for(int j = i + 1; j <= arr.length - 1; j++){
                    if(arr[k] > arr[j]){
                      k = j;
                    }
                }
                if(k != i){ //最终有标记记号的元素不是它本身
                    int temp = arr[i];
                    arr[i] = arr[k];
                    arr[k] = temp;
                }
            }
            System.out.println("排序后结果:");
            for(int i = 0; i < arr.length; i++){
                System.out.println(arr[i]);
            }
        }
  • 相关阅读:
    使用MailKit发送邮件
    移动APP设备锁功能开发中的问题
    Xamarin.Form指纹认证
    Android App安装启动时签名校验
    网络编程学习资料
    ASP.NET Core 2.1发布/部署到Ubuntu并配置Nginx反向代理实现ip访问
    @media用法解释
    CSS calc() 函数
    css3属性box-sizing:border-box 用法解析
    浮动塌陷-overflow:hidden来解决
  • 原文地址:https://www.cnblogs.com/shan333/p/15056293.html
Copyright © 2011-2022 走看看