直接插入和选择排序
时间: 2023-12-14 14:32:45 浏览: 127
以下是直接插入排序和选择排序的介绍和演示:
直接插入排序:
直接插入排序是一种简单的排序算法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增加1的有序表。具体实现过程如下:
1. 将第一个元素看作是一个有序的子序列,第二个元素到最后一个元素看作是一个无序的子序列。
2. 从第二个元素开始,依次将每个元素插入到有序子序列中的适当位置,使之成为新的有序子序列。
3. 重复步骤2,直到所有元素都插入到有序子序列中。
以下是Python代码示例:
```python
def insertion_sort(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
return arr
arr = [64, 25, 12, 22, 11]
print("排序前的数组:", arr)
print("排序后的数组:", insertion_sort(arr))
```
选择排序:
选择排序是一种简单的排序算法,它的基本思想是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放到序列的起始位置,直到全部待排序的数据元素排完。具体实现过程如下:
1. 将第一个元素看作是一个有序的子序列,第二个元素到最后一个元素看作是一个无序的子序列。
2. 从无序子序列中选择一个最小的元素,将其放到有序子序列的末尾。
3. 重复步骤2,直到所有元素都放到有序子序列中。
以下是Python代码示例:
```python
def selection_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]
return arr
arr = [64, 25, 12, 22, 11]
print("排序前的数组:", arr)
print("排序后的数组:", selection_sort(arr))
```
阅读全文