精华内容
下载资源
问答
  • Python实现选择排序

    2021-01-22 17:57:21
    Python实现选择排序
  • python实现选择排序

    2020-07-01 00:09:06
    python实现选择排序+理解过程选择排序 今天开始每天学习一个排序算法,并记录下来自己的理解过程,方便和我一样的0基础同学更好的理解各种排序算法。 选择排序 描述:选择排序是一种简单直观的排序算法,它的工作...

    python实现选择排序+理解过程


    今天开始每天学习一个排序算法,并记录下来自己的理解过程,方便和我一样的0基础同学更好的理解各种排序算法。

    选择排序

    描述:选择排序是一种简单直观的排序算法,它的工作原理是现在未排序的序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序的元素中继续寻找最小(大)元素,然后放到已排序序列的末尾,以此类推,知道所有元素均排序完毕。

    class Solution(object):    
        def findSmallest(self,nums):
            smallest = nums[0]		#创建变量用来临时存放最小值(先假设第一个元素为最小值)
            smallest_index = 0    	#用来存放最小值的索引位置
            for i in range(1,len(nums)):  #循环遍历数组,找出最小值,并返回最小值索引
                if nums[i]<smallest:
                    smallest = nums[i]   
                    smallest_index = i
            return smallest_index
        
        
        
        def solution(self,  nums):
            """
            :type nums: int[]
            :rtype: int[]
            """
            newArr = []   #创建新数组用来存放每次循环中找出的原数组中的最小值
            for i in range(len(nums)):
                smallest = self.findSmallest(nums)  #调用上面的函数,找出当前数组的最小值
                newArr.append(nums.pop(smallest))   #.pop()函数剔除对应位置的元素并返回元素的值  存到新建数组newArr中
            return newArr
    
    
    sol = Solution()
    s = sol.solution([4,8,6,5,9,2,3])
    print(s)
    

    新手小白如果也想要学习各种排序算法,可以关注我,之后我会将常见的每种排序算法都附上代码并且注释详细的理解过程,帮助大家理解算法的每一步。

    展开全文
  • Python 实现选择排序

    2019-10-15 21:24:35
    Python 实现选择排序 选择排序算法步骤: 找到数组中最小的那个元素中, 将它和数组的第一个元素交换位置, 在剩下的元素中找到最小的元素,将它和数组的第二个元素交换位置, 如此往复,知道将整个数组排序。 ...

    选择排序算法步骤:

    1. 找到数组中最小的那个元素中,
    2. 将它和数组的第一个元素交换位置,
    3. 在剩下的元素中找到最小的元素,将它和数组的第二个元素交换位置,
    4. 如此往复,知道将整个数组排序。

    逐步分析:

    1. 假设一个数组有 6 个元素,
      [5, 1, 4, 3, 2, 6]
    2. 第 1 个元素为 5,与剩余 5 个元素相比,1 是最小的元素,所以 5 和 1 交换位置,
      [1, 5, 4, 3, 2, 6]
    3. 第 2 个元素为 5,与剩余 4 个元素相比, 2 是最小的元素,所以 5 和 2 交换位置,
      [1, 2, 4, 3, 5, 6]
    4. 第 3 个元素为 4,与剩余 3 个元素相比, 3 是最小的元素,所以 4 和 3 交换位置,
      [1, 2, 3, 4, 5, 6]
    5. 不断重复直到排好序。
    def select_sort(arr):
        # 索引从 0 到 n-2
        for i in range(len(arr) - 1):
            # 最小元素的索引
            min = i
            # min 与从 i+1 到 n-1 的元素比较
            j = i + 1
            while j < len(arr):
                if arr[min] > arr[j]:
                    # 找到最小的元素
                    min = j
                j += 1
            # 交换位置
            arr[i], arr[min] = arr[min], arr[i]
    
    
    a = [5, 1, 4, 3, 2, 6]
    select_sort(a)
    print(a)
    

    稳定性:不稳定
    复杂度:
    平均 O(n^2)
    最坏 O(n^2)
    最好 O(n^2)

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,188
精华内容 875
关键字:

python实现选择排序

python 订阅