#C语言,按排序从小到大进行的,把插入的数与数组中各数逐个比较,当找到第一个比插入数大的元素i时,该元素之后即为插入位置。然后从数组最后一个元素开始到该元素为止,逐个前移一个单元。最后把插入数赋予元素i即可。如果插入数比所以元素值都大则插入到最后位置
时间: 2024-05-09 18:21:39 浏览: 38
直接插入排序c语言,很详细了啊
3星 · 编辑精心推荐
。代码如下:
```
#include <stdio.h>
void insert_sort(int arr[], int n, int insert_num);
int main() {
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
int n = sizeof(arr) / sizeof(int);
int insert_num = 7;
insert_sort(arr, n, insert_num);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
void insert_sort(int arr[], int n, int insert_num) {
int i = 0;
while (i < n && arr[i] < insert_num) {
i++;
}
for (int j = n - 1; j >= i; j--) {
arr[j + 1] = arr[j];
}
arr[i] = insert_num;
}
```
其中,`insert_sort`函数就是插入排序的实现,`arr`为需要排序的数组,`n`为数组的长度,`insert_num`为需要插入的数。首先,函数会找到第一个比插入数大的元素的位置`i`,并将这个位置之后的元素都向后移动一位。最后,将插入数赋给原来数组中的位置`i`。
在主函数中,我们定义了一个需要排序的数组`arr`,并且定义了需要插入的数`insert_num`为7。最后,调用`insert_sort`函数对`arr`进行排序,并输出排序后的结果。
阅读全文