直接插入排序代码
时间: 2023-07-02 07:18:33 浏览: 55
以下是直接插入排序的代码实现(使用C语言):
```c
void insertion_sort(int arr[], int len){
int i, j, temp;
for (i = 1; i < len; i++){
temp = arr[i];
j = i - 1;
while (j >= 0 && arr[j] > temp){
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = temp;
}
}
```
其中,arr为待排序的数组,len为数组的长度。该函数的功能是将数组arr中的元素从小到大进行排序。
相关问题
数据结构直接插入排序代码
直接插入排序是一种简单的排序算法,它的工作原理是通过构建有序序列,对于未排序的数据,在已排序序列中从后向前扫描,找到相应位置并插入。以下是使用Python实现的直接插入排序代码:
```python
def insertion_sort(arr):
# 假设数组长度大于1
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
# 示例
unsorted_array = [9, 7, 5, 11, 12, 2]
insertion_sort(unsorted_array)
print("排序后的数组:", unsorted_array)
```
直接插入排序代码c++
直接插入排序是一种简单的排序算法,它的基本思想是将待排序的元素逐个插入到已经排序好的序列中,直到所有元素都插入完成为止。以下是C++实现直接插入排序的代码:
```cpp
#include <iostream>
using namespace std;
void insertionSort(int arr[], int n) {
for (int i = 1; i < n; i++) {
int key = arr[i];
int j = i - 1;
// 将比key大的元素向后移动
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
int main() {
int arr[] = {5, 2, 8, 3, 1};
int n = sizeof(arr) / sizeof(arr[0]);
insertionSort(arr, n);
cout << "排序后的数组";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```