zoukankan      html  css  js  c++  java
  • 选择排序

    1、简单选择排序

     又称直接选择排序。

    思想:利用线性查找搜索出待排序列中的最小元素,并将它移动到最前面,每完成一次遍历,都会使一个元素在正确位置,即第i趟排序后,前面i个元素在正确位置。

    // 选择排序
        // 每次找到一个最小的 放在正确的位置
        public void selectsort(int[] a) {
            int k = 0;
            int temp = 0;
            for (int i = 0; i < a.length - 1; i++) {//i控制每趟循环,从第一个元素开始
                k = i;//第i趟,k取出第i个数据与后边的数据进行比较(假设k此时为最小元素)
                for (int j = i; j < a.length; j++) {//内层循环用于找出最小元素
                    if (a[j] < a[k]) {
                        k = j;//k用来记录最小元素的下标
    
                    }
                }
    
                temp = a[i];
                a[i] = a[k];
                a[k] = temp;//将最小数据与待排序列的第一个元素交换
    
            }
            for (int num : a) {
                System.out.print(num + " ");
            }
        }

    时间复杂度:O(n^2)

    空间复杂度:只有一个temp的辅助空间:O(1)

    作者:葬瞳飘血
    本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    人物装备的选取
    状压 + 背包
    村庄之间建立邮局
    woj
    括号匹配算面积(模拟)
    流程控制之if
    周末练习题(第一周)
    day04作业
    流程控制之for
    Python流程控制之while
  • 原文地址:https://www.cnblogs.com/ZTPX/p/6028650.html
Copyright © 2011-2022 走看看