C语言绝对值插入排序
时间: 2023-12-08 21:38:56 浏览: 119
C语言绝对值插入排序的实现步骤如下:
1. 定义一个函数,接收一个整型数组和数组长度作为参数。
2. 遍历数组,对于每个元素,将其绝对值插入到已排序的子数组中。
3. 对于已排序的子数组,从后往前遍历,将大于当前元素绝对值的元素向后移动一位,直到找到小于等于当前元素绝对值的位置,将当前元素绝对值插入到该位置。
4. 重复步骤2和3,直到遍历完整个数组。
以下是C语言绝对值插入排序的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
void abs_insertion_sort(int arr[], int len) {
int i, j, temp;
for (i = 1; i < len; i++) {
temp = abs(arr[i]);
j = i - 1;
while (j >= 0 && abs(arr[j]) > temp) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = temp;
}
}
int main() {
int arr[] = {-5, 3, 2, -8, 1, 0, -2, 6};
int len = sizeof(arr) / sizeof(arr[0]);
abs_insertion_sort(arr, len);
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
阅读全文