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