直接插入排序法python
时间: 2023-12-03 13:41:02 浏览: 50
以下是Python实现的直接插入排序算法示例:
```python
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
j >= 0 and key < arr[j]:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
return arr
``该算法的基本思想将一个记录插入到已经排好序有序表中,从而得到一个新的、记录数增加1的有序表。具体实现时,从第二个元素开始,将其与前面的元素进行比较,如果比前面的元素小,则将其插入到前面元素的前面,否则不做任何操作。重复以上步骤,直到所有元素都被插入到有序表中。
--相关问题--:
相关问题
python直接插入排序
Python直接插入排序是一种稳定的排序算法,它的基本思想是将一个未排序的数据插入到已排序序列中,插入的方式是从后到前依次比较和交换。Python实现直接插入排序的代码如下:
def insert_sort(li):
for i in range(1, len(li)):
tmp = li[i]
j = i - 1
while j >= 0 and li[j] > tmp:
li[j+1] = li[j]
j -= 1
li[j+1] = tmp
return li
其中,li是待排序的列表,i表示摸到的牌的下标,tmp是当前摸到的牌,j指的是手里的牌的下标。在每次循环中,将当前摸到的牌与手里的牌从后往前依次比较,如果手里的牌比当前摸到的牌大,则将手里的牌往后移动一位,直到找到一个比当前摸到的牌小的位置,将当前摸到的牌插入到这个位置。
python冒泡排序,与直接插入排序算法代码实现
好的,下面给您展示 Python 实现的冒泡排序和直接插入排序算法的代码。
1. 冒泡排序
```
def bubble_sort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# 最后i个元素已经排好序,无需再比较
for j in range(n-i-1):
# 如果当前元素大于下一个元素,则交换它们的位置
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
# 测试
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print("排序后的数组:", arr)
```
2. 直接插入排序
```
def insertion_sort(arr):
n = len(arr)
# 从第二个元素开始遍历
for i in range(1, n):
# 当前元素与已排序序列进行比较,找到插入位置
key = arr[i]
j = i - 1
while j >= 0 and key < arr[j]:
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key
# 测试
arr = [64, 34, 25, 12, 22, 11, 90]
insertion_sort(arr)
print("排序后的数组:", arr)
```
以上是冒泡排序和直接插入排序算法的 Python 实现。希望对您有所帮助。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)