用Python实现直接插入排序
时间: 2023-11-05 18:12:21 浏览: 47
好的,下面是用 Python 实现直接插入排序的代码:
```python
def insertion_sort(arr):
for i in range(1, len(arr)):
j = i - 1
key = arr[i]
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
```
其中,`arr` 是待排序的列表,`i` 是当前元素的下标,`j` 是当前元素的前一个元素的下标,`key` 是当前元素的值。在每一轮循环中,程序将当前元素插入到已排序的子序列中,保证已排序的子序列始终有序。
排序过程实现的基本思路是:从第二个元素开始,插入到已排序的子序列中,并保证已排序的子序列仍然有序。
相关问题
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实现的直接插入排序算法示例:
```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的有序表。具体实现时,从第二个元素开始,将其与前面的元素进行比较,如果比前面的元素小,则将其插入到前面元素的前面,否则不做任何操作。重复以上步骤,直到所有元素都被插入到有序表中。
--相关问题--: