zoukankan      html  css  js  c++  java
  • Python算法--排序-选择排序

    一、选择排序

    在数据量小的时候,对于排序,我们也可以采用选择排序(Selection sort),是一种简单直观的排序算法。

    原理大致如下:首先,我们选择未排序数列的首位作为参考,然后依次用后面的元素与其进行比较,如果发现比他小(大),我们就进行交换位置处理,直到全部比对完成一轮后,再将第二个元素后面的元素依次与第二个元素进行比较,以此类推,直到全部遍历完所有的元素为止,就得到了一列有顺序的元素集合。

    我们看一下网上的这个示意图:

    二、编码实现

    直接上 Python 编码实现如下:

    # -*- coding: utf-8 -*-
    # @Author  : Sai
    # @Email   : 932934045@qq.com
    # @File    : select_sort.py
    # @Time    : 2020/8/11 14:54
    
    
    def selection_sort(arr):
        '''
        选择排序
        :param arr: 待排序列表
        :return: 排序后的列表
        '''
        for i in range(len(arr) - 1):
            # 选择一个元素的索引暂作为最小数
            min_Index = i
    
            for j in range(i + 1, len(arr)):
                if arr[j] < arr[min_Index]:
                    min_Index = j
            if min_Index != i:
                arr[i], arr[min_Index] = arr[min_Index], arr[i]
            # print(arr) # 这里我们可以打印每一轮排序后的结果,便于理解
        return arr
    
    
    if __name__ == '__main__':
        arr1 = [10, 4, 5, 9, 8, 6, 0, 3, 2, 7, 1]
        print("排序前顺序为:", arr1)
        new_arr = selection_sort(arr1)
        print("排序后顺序为:", new_arr)
    

    运行结果如下所示:

  • 相关阅读:
    数据分析也有发展趋势
    数据分析也有发展趋势
    大数据与人的主体性
    大数据与人的主体性
    数据分析告诉我们的四个经验教训
    数据分析告诉我们的四个经验教训
    大数据新闻传播是什么
    数据分析告诉你,转化才是王道
    数据分析告诉你,转化才是王道
    企业应如何培养数据驱动的分析文化?
  • 原文地址:https://www.cnblogs.com/saixuyu/p/13496749.html
Copyright © 2011-2022 走看看