c语言[1,3,4,2,2,5,5,7]去重冒泡排序
时间: 2023-08-19 13:05:49 浏览: 41
好的,针对你的问题,我可以给出以下的C语言代码实现:
```c
#include<stdio.h>
void bubble_sort(int arr[], int len) { // 冒泡排序
int i, j, temp;
for (i = 0; i < len - 1; i++)
for (j = 0; j < len - 1 - i; j++)
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
int main() {
int arr[] = {1, 3, 4, 2, 2, 5, 5, 7};
int len = sizeof(arr) / sizeof(arr[0]);
int i, j, k;
for (i = 0; i < len; i++) { // 去重
for (j = i + 1; j < len;) {
if (arr[j] == arr[i]) {
for (k = j; k < len; k++)
arr[k] = arr[k + 1];
len--;
} else {
j++;
}
}
}
bubble_sort(arr, len); // 排序
for (i = 0; i < len; i++)
printf("%d ", arr[i]);
printf("\n");
return 0;
}
```
该段代码实现了对数组 `[1,3,4,2,2,5,5,7]` 进行去重和冒泡排序,并输出排序后的结果 `[1, 2, 3, 4, 5, 7]`。