python排序算法
时间: 2023-07-01 07:05:46 浏览: 78
Python语言中常见的排序算法有以下几种:
1. 冒泡排序
冒泡排序是一种简单的交换排序,它的基本思想是通过不断地比较相邻两个元素的大小,将较大的元素向后移动,较小的元素向前移动。具体实现过程如下:
```python
def bubbleSort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]
```
2. 选择排序
选择排序是一种简单的选择排序,它的基本思想是从未排序的元素中选出最小的元素,将其放在已排序的末尾,重复执行这个过程,直到所有元素都排序完成。具体实现过程如下:
```python
def selectionSort(arr):
n = len(arr)
for i in range(n):
min_idx = i
for j in range(i+1, n):
if arr[min_idx] > arr[j]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
```
3. 插入排序
插入排序是一种简单的插入排序,它的基本思想是将一个元素插入到已排序的元素中,使得插入后的序列仍然有序。具体实现过程如下:
```python
def insertionSort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i-1
while j >=0 and key < arr[j] :
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key
```
4. 快速排序
快速排序是一种高效的排序算法,它的基本思想是通过分治的思想将待排序序列分成两个子序列,其中一个子序列的所有元素都比另一个子序列的所有元素小,然后分别对这两个子序列进行递归排序。具体实现过程如下:
```python
def quickSort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
left = []
right = []
for i in range(1, len(arr)):
if arr[i] < pivot:
left.append(arr[i])
else:
right.append(arr[i])
return quickSort(left) + [pivot] + quickSort(right)
```
以上是常见的四种排序算法,还有其他排序算法,比如归并排序、堆排序等。每种排序算法都有其优缺点和适用场景,需要根据具体问题选择合适的算法。
阅读全文