python排序算法(python排序算法代码,降序输出)
Python是一种高级编程语言,具有简单易学、可读性强、动态语言、内置模块丰富等特点,是广泛使用的编程语言之一。其中排序算法是比较常见且基础的算法之一,本文将介绍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
```
二、选择排序
选择排序的核心思想是找到未排好的序列中最小的元素,放到已排好序列的最后面,直到整个序列排好为止。
实现代码如下:
```
def selection_sort(arr):
n = len(arr)
for i in range(n-1):
min_index = i
for j in range(i+1, n):
if arr[min_index] > arr[j]:
min_index = j
arr[i], arr[min_index] = arr[min_index], arr[i]
return arr
```
三、插入排序
插入排序的核心思想是将未排序的元素从已排序的序列中找到合适的位置插入,直到整个序列排好为止。
实现代码如下:
```
def insertion_sort(arr):
n = len(arr)
for i in range(1, n):
current_value = arr[i]
j = i - 1
while j >= 0 and arr[j] > current_value:
arr[j+1] = arr[j]
j -= 1
arr[j+1] = current_value
return arr
```
四、快速排序
快速排序是基于分治法的排序算法,它的核心思想是选取一个基准值,将序列中小于基准值放到左边,大于基准值放到右边,然后递归地对左右两个序列进行排序,直到整个序列排好为止。
实现代码如下:
```
def quick_sort(arr, left, right):
if left < right:
pivot_index = partition(arr, left, right)
quick_sort(arr, left, pivot_index-1)
quick_sort(arr, pivot_index+1, right)
def partition(arr, left, right):
pivot_value = arr[left]
left_index = left + 1
right_index = right
done = False
while not done:
while left_index <= right_index and arr[left_index] <= pivot_value:
left_index += 1
while right_index >= left_index and arr[right_index] >= pivot_value:
right_index -= 1
if right_index < left_index:
done = True
else:
arr[left_index], arr[right_index] = arr[right_index], arr[left_index]
arr[left], arr[right_index] = arr[right_index], arr[left]
return right_index
```
以上是Python中的几种排序算法及其实现方法,每种算法都有其适用范围和优劣。在选择排序算法时还需考虑排序时间的复杂度和空间复杂度等因素,以便更好地解决实际问题。