Python的简单排序算法
简单选择排序——每次从剩下的元素中选择最小
排序可以用以下函数,但我们在这里不用。
-
sort()
函数默认排升序 -
sort(reverse=False)
排升序 -
sort(reverse=True)
排降序主要思想,选出第一个假设它为最小值与其他值比较,比它小的记下下标并交换值,不符合条件的位置不动 往后继续比较。最后返回最小值下标,交换两个的值。 然后开始第二次循环。
从第一个开始比较小于最小值的元素把它位置记下,一次循环完过后将最小的值换到前面,外循环再依次做上面步骤。
nums = [35,12,99,58,67,42,49,31,73]
print(nums)
nums.sort()
print(nums)
for i in range(len(nums)-1):
#假设第一个元素就是最小值
min_value,min_index = nums[i],i
#通过循环寻找有没有更小的值并记下它的位置
for j in range(i + 1,len(nums)):
if nums[j]<min_value:
min_value,min_index=nums[j],j
#上一次循环完后才交换位置,将最小的值换到最前面的位置
nums[i],nums[min_index]=nums[min_index],nums[i]
print(nums)
冒泡排序——元素两两比较,如果前面的元素大于后面的元素,就交换两个元素的位置
主要思想式进行两两比较,内循环(前大于后大的元素交换两个元素的位置,依次向后进行比较,最后把最大的放到了最后),外循环(再来比较第二个数,同前一样依次比较。一直进行到倒数第二个。)
nums = [35,12,99,58,67,42,49,31,73]
for i in range(0,len(nums)):
for j in range(0,len(nums)-1):
if nums[j]>nums[j+1]:
nums[j],nums[j+1]=nums[j+1],nums[j]
print(nums)