排序算法代码(python冒泡排序算法代码)
排序算法分为多种不同的类型,比如插入排序、选择排序、冒泡排序、快速排序等等。这些排序算法在不同的场景下具有不同的优劣势,可以根据具体的需求选择合适的排序算法来解决问题。
一、插入排序
插入排序是一种简单直观的排序算法。它的基本思想是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增加了1的有序表。插入排序的代码示例如下:
```python
def insert_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
```
二、选择排序
选择排序是一种简单直观的排序算法。它的基本思想是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。选择排序的代码示例如下:
```python
def select_sort(arr):
for i in range(len(arr)):
min_index = i
for j in range(i + 1, len(arr)):
if arr[j] < arr[min_index]:
min_index = j
arr[i], arr[min_index] = arr[min_index], arr[i]
```
三、冒泡排序
冒泡排序是一种简单直观的排序算法。它的基本思想是通过相邻元素之间的比较和交换,将较大(或较小)的元素逐渐往后(或往前)移动,从而达到排序的目的。冒泡排序的代码示例如下:
```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]
```
四、快速排序
快速排序是一种常用且高效率的排序算法。它的基本思想是通过一趟排序将待排序的数据分割成独立的两个部分,其中一部分的所有数据都比另一部分的所有数据小,然后再按此方法对这两部分数据进行快速排序,整个排序过程递归进行,以此达到整个数据变成有序序列的目的。快速排序的代码示例如下:
```python
def quick_sort(arr, left, right):
if left < right:
pivot = partition(arr, left, right)
quick_sort(arr, left, pivot - 1)
quick_sort(arr, pivot + 1, right)
def partition(arr, left, right):
pivot = arr[left]
while left < right:
while left < right and arr[right] >= pivot:
right -= 1
arr[left] = arr[right]
while left < right and arr[left] <= pivot:
left += 1
arr[right] = arr[left]
arr[left] = pivot
return left
```
以上是常见的四种排序算法的代码示例。这些算法都有各自的特点和适用场景,根据实际需求选择合适的排序算法可以提高算法的执行效率和准确性。