美文网首页
排序算法之选择排序

排序算法之选择排序

作者: 借缕春风绽百花 | 来源:发表于2020-10-25 16:15 被阅读0次

排序原理:

①每一次遍历待排序数据时,都假定第一个索引处的值为最小值,然后将它依次和其他索引位置数据进行比较,若假定最小值大于其他某个待排序元素值,则更换假定的最小值,直到遍历结束,得到全部待排序数据的最小值。
②将真正的最小值与第一个元素交换位置。待排序元素减少一个。

时间复杂度:

最好情况:O(n^2)
最坏情况:O(n^2)
平均情况:O(n^2)

空间复杂度:

O(1)

稳定性:

不稳定

实现:

API设计:

①主排序算法用于排序
public static void sort(int[] a)
② 比较API,用于比较两个元素大小
private static boolean greater(int[] a,int v,int w)
③交换API,用于交换两个索引位置的值
private static void exchange(int[] a,int i,int j)

API实现:

//主排序算法用于排序
   public static void sort(int[] a) {
       for(int i = 0;i < a.length-2;i++) {
           //初始假定i为本次比较最小值
           int minIndex = i;
           for(int j = i+ 1;j < a.length - 1;j ++) {
               if(greater(a,i,j)) {
                   minIndex = j;
               }
           }
           exchange(a,i,minIndex);
       }
   }
   //比较API,用于比较两个元素大小
   private static boolean greater(int[] a,int v,int w) {
       if(a[v]>a[w]) {
           return true;
       }
       return false;
       
   }
   //交换API,用于交换两个索引位置的值
   private static void exchange(int[] a,int i,int j) {
       int temp = a[i];
       a[i] = a[j];
       a[j] = temp;
       
   }

相关文章

  • 算法-选择排序

    算 法:选择排序算法时间复杂度: 选择排序算法概述 选择排序伪代码 选择排序实现 选择排序算法概述 排序算法有许...

  • 算法理解之排序-选择排序

    算法理解之排序-选择排序 选择排序是一种简单直观的排序算法, 以当前点为锚点, 向后依次进行比较所有未排序元素, ...

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • 3.1-选择排序-简单选择排序

    参考链接 选择排序:简单选择排序(Simple Selection Sort) 白话经典算法系列之四 直接选择排序...

  • JS实现排序算法

    原文:常见排序算法之JavaScript实现 - 知乎 目录 冒泡排序 选择排序 插入排序 合并排序 快速排序 1...

  • 算法4:插入排序和选择排序算法的比较

    排序算法列表电梯: 选择排序算法:详见 《算法4》2.1 - 选择排序算法(Selection Sort), Py...

  • 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

    图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

  • PHP常用算法

    基于选择的排序算法 常见的基于选择的排序算法有:冒泡排序、插入排序、选择排序、归并排序和快速排序,我们在选在排序算...

  • 算法and数据结构

    算法 冒泡排序 选择排序 计数排序

  • 基础排序算法总结

    排序算法分为内部排序和外部排序,而我们经常说的基础排序算法,都是内部排序算法。包括冒泡排序,选择排序,插入排序,快...

网友评论

      本文标题:排序算法之选择排序

      本文链接:https://www.haomeiwen.com/subject/kjnkmktx.html