zoukankan      html  css  js  c++  java
  • 深入浅出的排序算法-选择排序

    已经发表个人公众号

    选择排序


    选择排序比冒泡排序快一些,之前的《冒泡排序》是需要掌握的,现在讲的选择排序比冒泡排序快一些,也是常用的排序算法。


    选择排序是第一个人和后续排序的人进行比较,若第一个人大于第二个人,就进行交换,那么这时第一人就是最小的,然后这时的第一个人和第三个人进行比较,若这时的第一个人大于第三个人,就进行交换位置,这时第一个人又换人了,也变得更小了,就这样,把剩下的人以这种方法进行比较,直到最后,第一轮结束,在第一位的就是最小的值。


    这种就是排序算法,比如有6个人,第一轮要进行5次比较,不是。


    进行代码展示

    //第一轮
    for(int index=1;index<arr.length;index++)
    {
    if(arr[0]>arr[index])
    {
      int temp = arr[0];
      arr[0] = arr[index];
      arr[index] = temp;
    }
    }
    print(arr);
    
    //第二轮
    for(int index=2;index<arr.length;index++)
    {
    if(arr[1]>arr[index])
    {
      int temp = arr[1];
      arr[1] = arr[index];
      arr[index] = temp;
    }
    }
    print(arr);
    
    //第三轮
    for(int index=3;index<arr.length;index++)
    {
    if(arr[2]>arr[index])
    {
      int temp = arr[2];
      arr[2] = arr[index];
      arr[index] = temp;
    }
    }
    print(arr);
    
    //第四轮
    for(int index=4;index<arr.length;index++)
    {
    if(arr[3]>arr[index])
    {
      int temp = arr[3];
      arr[3] = arr[index];
      arr[index] = temp;
     }
    }
    print(arr);
    
    //第五轮
    for(int index=5;index<arr.length;index++)
    {
    if(arr[4]>arr[index])
    {
      int temp = arr[4];
      arr[3] = arr[index];
      arr[index] = temp;
     }
    }
    print(arr);
    
    //第六轮没有,我们arr.length=6举例
    //int index = 6;index<arr.length; false
    优化
    public static void selectionSort(int[] arr)
    {
    for(int count=1;count<arr.length;count++)
    {
     for(int index=count;index<arr.length;index++)
     {
      if(arr[count-1]>arr[index])
      {
        int temp = arr[count-1];
        arr[count-1] = arr[index];
        arr[index] = temp;
      }
     }
    }
  • 相关阅读:
    @Autowired 注解是如何实现的?
    工作 3 年的同事不懂 isEmpty 和 isBlank 的区别,我真是醉了。。
    4 个单词,谷歌返回 16 个 SQL 注入漏洞...
    MySQL 更新不成功,事务问题搞清楚了吗?
    Python Web应用如何部署?
    mapbox加载postgis矢量切片
    tile2lon:地图瓦片编号与经纬度的换算关系
    shp2pgsql:将shapefile导入postgis数据库
    postgreSQL表添加ID自增列
    postgreSQL连接配置
  • 原文地址:https://www.cnblogs.com/dashucoding/p/11932706.html
Copyright © 2011-2022 走看看