zoukankan      html  css  js  c++  java
  • 排序算法之--直接选择排序

    思想:

    很好理解,就是你要从大到小或者从小到大怎么排,然后我每次从中找一个,给你最大或最小的。

    分成两拨,一拨找好的有序的,一拨还没找无序的。

    // 10 13  18  12  22  11   6  19  8
    // max=22
    //22 13 18 12 10 11 6 19 8
    // 13 18 12 10 11 6 19 8
    // 19 18 12 10 11 6 13 8
    // 18 12 10 11 6 13 8
    然后找到的跟前面的交换位置。

    上代码:
     //从大到小
         public static void main(String[] args)
        {
            int[] data=new int[100_000];
            for(int i=0;i<data.length;i++){//随机产生数据
                data[i]=(int)(Math.random()*1000+1);
            }
            //int []  data =new int []{10 ,13 , 18  ,12 , 22,  11  , 6 , 19 , 8};
            long startTime = System.currentTimeMillis();    //获取开始时间
            for(int i=0;i<data.length-1;i++)//一层循环每个数走一遍
            {
                 int max_id=i;//第I个数
                 for(int j=i+1;j<data.length;j++)//二层循环分堆
                 {
                     if(data[j]>data[max_id])
                    {
                       max_id=j;//找到比前面的数大的数就取得下标
                    }
                 }
                 if(max_id!=i)//交换
                 {
                      int temp= data[i];
                      data[i]=data[max_id];
                      data[max_id]=temp;
                 }
    
            }
            long endTime = System.currentTimeMillis();    //获取结束时间
    
            System.out.println("程序运行时间:" + (endTime - startTime) + "ms");    //输出程序运行时间
    
        }

    测试时间100_000:

    还是快排快= =

  • 相关阅读:
    WP8.1通过StreamSocket连接C++服务器
    WP10通过StreamSocket连接C++服务器
    二维背包(两个限制条件)
    dp(多重背包)
    dp(完全背包)
    dfs(迷宫)
    bfs迷宫
    蚁人cp数
    二分(老死不相往来)
    前缀和(狼和野牛)
  • 原文地址:https://www.cnblogs.com/symkmk123/p/9451542.html
Copyright © 2011-2022 走看看