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

    选择排序思想很简单:每次从待排序的子序列中选择最小的那个数据,将其插到已经排好序的序列中,算法描述如下:

    select_sort(A)

    1、for i= 1 to length(A);//用算法描述的下标都是从1开始的

    2、  min=temp=A[i];

    3、  index=i;

    4、  for j=i+1 to length(A)

    5、    if temp > A[j] do temp=A[j], index=j;

    6、  exchange(A[i],A[index]);  

    可以用一个简单的图示描述该算法的执行步骤:

    根据算法描述,可以得出以下代码:

    public class Test{
        public static void main(String[] args)throws InterruptedException{
            int[] array={32,56,34,23,43,45,23,54,56,31,322};
            printArray(array);
            int temp=0,min=0,index=0;
            for(int i=0;i<array.length;i++){
                temp=array[i];
                min=array[i];
                index=i;
                for(int j=i+1;j<array.length;j++){
                    if(min>array[j]){
                        min=array[j];
                        index=j;
                    }
                }
                if(index!=i){
                    array[i]=array[index];
                    array[index]=temp;
                }
            }
            printArray(array);
        }    
        static void printArray(int[] array){
            for(int val:array){
                System.out.print(val+" ");
            }
            System.out.println();
        }
    }

    算法分析:从思想描述就可以得知,简单排序的时间复杂度是O(n^2),它和序列的初始状态无关,无论是最好还是最为,时间复杂度均是O(n^2),而且根据图示可知,该算法不是稳定的。

       

  • 相关阅读:
    SQL Server 数据库基础编程
    SQL Server 数据库设计
    SQL Server T-SQL高级查询(转)
    MVC组件分析(转)
    HTTP MIME类型即HttpResponse.ContentType属性值列表
    dreamweaver cs6 的破解方法
    varchar和Nvarchar区别
    .NET 可选择的转型路径(转)
    IT职场求生法则(转)
    HTML常见元素集锦
  • 原文地址:https://www.cnblogs.com/codeMedita/p/7424334.html
Copyright © 2011-2022 走看看