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

算法之选择排序

作者: 凌雲木 | 来源:发表于2019-08-03 10:01 被阅读0次

选择排序的实质是:

第一步:对于给定的一任意数组Arry,筛选其中值最小的元素a1(再此从小到大排序)
第二步:从数组Arry中删除元素a1,同时把a1添加新数组NewArry中
第三步:接着从数组Arry中筛选值最小的元素a2
第四步:从数组Arry中删除元素a2,同时把a1添加新数组NewArry中
重复第一步与第二步的操作,直到Arry中的元素全部删除,这时原先Arry中的元素都移动到NewArry中,并在NewArry中实现了排序

性能:

时间复杂度 空间复杂度
O (ln^2 )

相关语言实现:
Python

def findSmallest(arr):
    '''查找最小值元素的索引'''
    smallest = arr[0]
    smallest_index = 0    
    a=range(1,len(arr) )
    for i in a:
        if arr[i] < smallest:
            smallest = arr[i]
            smallest_index = i
    return smallest_index
def selectSortMethod(arry):
    '''选择排序'''
    newArry=[]
    for x in range(len(arry)):
        smallest = findSmallest(arry)
        newArry.append(arry.pop(smallest))
    return newArry 

C#

        /// <summary>
        /// 查找最小值的索引
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        public static int FindSmallest(int[] list)
        {
            var min_num = list[0];
            int min_index = 0;
            for (int i = 1; i < list.Length; i++)
            {
                if (list[i] < min_num)
                {
                    min_num = list[i];
                    min_index = i;
                }
            }
            return min_index;
        }
        /// <summary>
        /// 选择排序(从小到大)
        /// </summary>
        /// <param name="arry"></param>
        /// <returns></returns>
        public static int[] SelectSortMethod(int[] arry)
        {
            List<int> Arrylist = arry.ToList();
            List<int> ResultArry = new List<int>();
            while (Arrylist.Count > 0)
            {
                //找出数组中值最小的索引
                var min_index = FindSmallest(Arrylist.ToArray());
                ResultArry.Add(Arrylist[min_index]);
                Arrylist.RemoveAt(min_index);
            }
            return ResultArry.ToArray();
        }

相关文章

  • 算法-选择排序

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

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

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

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

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

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

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

  • 经典排序算法总结

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

  • JS实现排序算法

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

  • 算法之 排序算法之 选择排序

    简介 插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。 实现步骤 ...

  • 『算法』之 初级排序算法总结

    本篇文章同时收录在我的个人博客:『算法』之 初级排序算法总结 选择排序 一种最简单的排序算法:首先,找到数组中最小...

  • 《算法4》2.1 - 插入排序算法(Insertion Sort

    排序算法列表电梯: **选择排序算法:详见 Selection Sort ** 插入排序算法(Insertion ...

  • 2018-07-18

    排序算法之选择排序 基本思想 选择排序算法的基本思想是:首先,找到数组中最小的那个元素,其次,将它和数组的第一个元...

网友评论

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

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