python常见的排序算法
时间: 2023-03-10 09:06:07 浏览: 107
Python 常见的排序算法包括以下几种:
1. 冒泡排序(Bubble Sort)
2. 选择排序(Selection Sort)
3. 插入排序(Insertion Sort)
4. 快速排序(Quick Sort)
5. 归并排序(Merge Sort)
6. 堆排序(Heap Sort)
7. 计数排序(Counting Sort)
8. 桶排序(Bucket Sort)
9. 基数排序(Radix Sort)
以上排序算法各有特点,应根据具体的数据规模和排序要求来选择合适的算法。在 Python 中,也可以通过内置的 sorted() 函数来完成排序。
相关问题
python实现排序算法
Python中常用的排序算法有很多种,以下是几种常见的排序算法的Python实现代码示例:
1. 冒泡排序(Bubble Sort):
```python
def bubble_sort(arr):
n = len(arr)
for i in range(n-1):
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
```
2. 插入排序(Insertion Sort):
```python
def insertion_sort(arr):
n = len(arr)
for i in range(1, n):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
return arr
```
3. 选择排序(Selection Sort):
```python
def selection_sort(arr):
n = len(arr)
for i in range(n-1):
min_idx = i
for j in range(i+1, n):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
```
4. 快速排序(Quick Sort):
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)
```
这些只是四种常见的排序算法的示例,Python中还有其他排序算法,如归并排序、堆排序等。你可以根据实际需求选择合适的排序算法进行使用。
python写排序算法
Python 有许多内置的排序算法,比如 `sorted()` 函数和 `list.sort()` 方法。
如果你想手写排序算法,常见的选择有:冒泡排序、选择排序、插入排序、归并排序和快速排序。
下面是一个简单的冒泡排序算法的例子:
```python
def bubble_sort(arr):
for i in range(len(arr) - 1):
for j in range(len(arr) - 1 - i):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
return arr
print(bubble_sort([5, 2, 9, 1, 5, 6])) # [1, 2, 5, 5, 6, 9]
```
冒泡排序的时间复杂度是 O(n^2),也就是说,对于一个长度为 n 的数组,需要进行 n^2 次比较和交换。它的优点是实现简单,缺点是效率较低。
选择排序、插入排序和归并排序的时间复杂度都是 O(n^2),但是它们的常数因子比冒泡排序小,因此在实际应用中更快一些。
快速排序是一种分治算法,时间复杂度为 O(n*log n),在大多数情况下都会比前面几种算法快得多。
下面是一个简单的快速排序算法的例子:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if