c语言qsort 去重
时间: 2023-06-21 07:20:58 浏览: 106
C语言中的qsort函数可以对任意类型的数组进行快速排序,但是它并不能实现数组去重的功能。如果要对数组进行去重操作,可以使用以下步骤:
1. 先对数组进行排序,可以使用qsort函数进行排序。
2. 遍历排序后的数组,将重复的元素删除。
以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a, const void *b)
{
return (*(int *)a - *(int *)b);
}
int main()
{
int arr[] = {1, 2, 3, 3, 4, 4, 5};
int len = sizeof(arr) / sizeof(arr[0]);
int i, j, k;
qsort(arr, len, sizeof(int), cmp);
for (i = 0; i < len; i++) {
for (j = i + 1, k = i; j < len; j++) {
if (arr[j] != arr[k]) {
arr[++k] = arr[j];
}
}
len = k + 1;
}
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在这个示例中,我们先对数组进行排序,然后使用双重循环遍历数组,将重复的元素删除。最后输出去重后的数组。