zoukankan      html  css  js  c++  java
  • Java基础--选择排序

    每一趟从待排序的数据元素中选出最小(或最大的)一个元素,

    顺序放在已排好的序的数列的最后,直到全部待排序的数据元素排完。

    选择排序是不稳定的排序方法。

     选择排序的时间复杂度为 O(n^2)。

            第一次需要检查n个元素,但随后检查的元素数依次为n - 1, n – 2, …, 2和1。平均每次检查的元素数为1/2 * n, 因此运行时间为 n * 1/2 * n,简单地写作 O(n^2)。

    例:

    34,4,56,17,90,65

    4,34,56,17,90,65  第一轮 5次

    4,17,56,34,90,65  第二轮 4次

    4,17,34,56,90,65  第三轮 3次

    4,17,34,56,65,90  第四轮 2次

    4,17,34,56,65,90  第五轮 1次

    代码如下:

    ppublic static void main(String[] args) {
            int[] num = {34,4,56,17,90,65};
            int minIndex = 0;//用于记录每次比较的最小值下标
            //控制轮数
            for(int i =0;i<num.length-1;i++) {
                minIndex =i; //每轮假设一个最小值下标
                for(int j =i+1;j<num.length;j++) {
                    if(num[minIndex]>num[j]) {
                        minIndex=j;
                    }
                }
              //判断需要交换的数下标是否为自己
                if(minIndex!=i) {
                    num[minIndex]=num[minIndex]+num[i];
                    num[i]=num[minIndex]-num[i];
                    num[minIndex]=num[minIndex]-num[i];
                }
            }
           //输出结果
            for(int x:num)
            System.out.println(x);
            
        }
  • 相关阅读:
    html5阴影
    html5绘制字符串
    HTML5绘制几何图形
    Animation同时改变多个属性的动画
    Animation鱼眼效果
    Animation动画
    IE6中CSS常见BUG全集及解决方案——摘自网友
    transition多个属性同时渐变(width,height,background)
    【BZOJ2049】 [Sdoi2008]Cave 洞穴勘测
    【CF995F】 Cowmpany Cowmpensation
  • 原文地址:https://www.cnblogs.com/s1023/p/11183130.html
Copyright © 2011-2022 走看看