选择排序 by Python

2019-01-31  本文已影响0人  慧鑫coming

最好时间复杂度:O(n²)
最坏时间复杂度:O(n²)
平均时间复杂度:O(n²)
空间复杂度:O(1)
是否是稳定排序:No
是否是原地排序:Yes
python 实现:

class Solution:
    def selectionSort(self, nums):
        """
        :type nums: List[int]
        :rtype: void
        """
        length = len(nums)
        if length <= 1:
            return
        for i in range(0, length-1):
            # 从索引为0开始,依次将每个位置的初始值作为本次内层循环的最小值
            min_index = i
            for j in range(i+1, length):
                # 循环过程中发现小于最小值的值,先记录其索引,内循环结束后进行值交换
                if nums[j] < nums[min_index]:
                    min_index = j
            nums[min_index], nums[i] = nums[i], nums[min_index]
        return

if __name__ == "__main__":
    nums = [1,3,2,4,6,8,20,4,5,6,7,10]
    s = Solution()
    s.selectionSort(nums)
    print(nums)

上一篇 下一篇

猜你喜欢

热点阅读