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;  
      }  
     }  
    }  
    

    总结

    • 本文讲了选择排序,如果您还有更好地理解,欢迎沟通
    • 定位:分享 Android&Java知识点,有兴趣可以继续关注
  • 相关阅读:
    你云我云•兄弟夜谈会 第三季 企业IT架构
    你云我云•兄弟夜谈会 第二季 5G
    C++ 中的不定参数与格式化字符串 # ## vsprintf
    Python多进程池 multiprocessing Pool
    protobuf语法指南
    linux 监控工具netdata
    C++并发编程 条件变量 condition_variable,线程安全队列示例
    C++ 并发编程,std::unique_lock与std::lock_guard区别示例
    linux设置预留端口号,防止监听端口被占用 ip_local_reserved_ports
    goto语句引起的crosses initialization of XXX
  • 原文地址:https://www.cnblogs.com/dashucoding/p/9267217.html
Copyright © 2011-2022 走看看