1.排序
2.排序算法分类
3.常见排序算法
冒泡排序算法
class Solution:
def bubbleSort(self,arr):
for i in range(len(arr)):
for j in range(len(arr)-i-1):
if arr[j] > arr[j+1]:
arr[j],arr[j+1] = arr[j+1],arr[j]
return arr
def sortArray(self,nums:List(int)) -> List(int):
return self.bubbleSort(nums)
选择排序![](https://img-blog.csdnimg.cn/04590033a89f4cdc9cb31b1b0e924e3c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATWlhfn4=,size_20,color_FFFFFF,t_70,g_se,x_16)
class Solution:
def selectionSort(self,arr):
for i in range(len(arr)-1):
#记录未排序中最小数的索引
min_i = i
for j in range(i+1,len(arr)):
if arr[j] < arr[min_i]:
min_i = j
#如果找到最小数,将i位置上元素与最小数位置上元素进行交换
if i != min_i:
arr[i],arr[min_i] = arr[min_i],arr[i]
return arr
def sortArray(self,nums:List(int)) -> List(int):
return self.selectionSort(nums)
插入排序
class Solution:
def insertionSort(self,arr):
for i in range(1,len(arr)):
temp = arr[i]
j = i
while j >0 and arr[j-1] >temp:
arr[j] = arr[j-1]
j -= 1
arr[j] = temp
return arr
def sortArray(self,nums:List(int)) -> List(int):
return self.insertionSort(nums)
希尔排序
class Solution:
def shellSort(self,arr):
size = len(arr)
gap = size // 2
while gap >0:
for i in range(gap,size):
temp = arr[i]
j = i
while j >= gap and arr[j-gap]>temp:
arr[j] = arr[j-gap]
j -= gap
arr[j] = temp
gap = gap // 2
return arr
def sortArray(self,nums:List(int)) -> List(int):
return self.shellSort(nums)
归并排序
快速排序算法
堆排序算法
计数排序算法
桶排序算法
基数排序算法