c语言用指针实现插入排序
时间: 2024-04-23 19:28:41 浏览: 79
以下是使用指针实现插入排序的C语言代码:
```c
#include <stdio.h>
void charu(int *ptr, int n);
int main() {
int a\[\] = {23, 34, 43, 675, 24, 54, 8, 565, 23, 24};
int n = sizeof(a) / sizeof(a\[0\]);
charu(a, n);
for (int i = 0; i < n; i++) {
printf("%5d", a\[i\]);
}
return 0;
}
void charu(int *ptr, int n) {
int *p, *q, *p_end, temp;
p_end = ptr + n;
for (p = ptr + 1; p < p_end; p++) {
if (*p < *(p - 1)) {
temp = *p;
*p = *(p - 1);
for (q = p - 2; q >= ptr && temp < *q; q--) {
*(q + 1) = *q;
}
*(q + 1) = temp;
}
}
}
```
这段代码使用了指针来实现插入排序。函数`charu`接受一个指向整型数组的指针和数组的长度作为参数。在函数内部,使用指针`p`和`q`来遍历数组,并使用指针操作来进行元素的比较和交换。通过比较当前元素和前一个元素的大小,如果需要插入,则将当前元素插入到正确的位置。最后,数组中的元素将按升序排列。
#### 引用[.reference_title]
- *1* *2* *3* [C语言插入排序](https://blog.csdn.net/qq_45659287/article/details/103877329)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文