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)

选择排序

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)

归并排序



快速排序算法



堆排序算法







计数排序算法



桶排序算法



基数排序算法



例子
合并两个有序数组



排序数组


481

被折叠的 条评论
为什么被折叠?



