c 语言数组降序排列
时间: 2023-07-03 15:05:21 浏览: 148
以下是使用冒泡排序法对C语言数组进行降序排列的示例代码:
```c
#include <stdio.h>
int main() {
int arr[] = {5, 9, 3, 1, 8, 6};
int n = sizeof(arr) / sizeof(int);
int i, j, temp;
for(i = 0; i < n-1; i++) {
for(j = 0; j < n-i-1; j++) {
if(arr[j] < arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
printf("降序排列后的数组:");
for(i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果为:降序排列后的数组:9 8 6 5 3 1
相关问题
p ython将数组降序排列 并返回元素重复次数
在Python中,你可以使用内置函数`sorted()`配合列表推导式来对数组(在这里假设为列表)进行降序排列,并使用`collections.Counter`来统计每个元素的重复次数。以下是步骤:
```python
from collections import Counter
def sort_and_count_duplicates(lst):
# 先排序列表,reverse=True表示降序
sorted_lst = sorted(lst, reverse=True)
# 使用Counter计算每个元素的出现次数
count_dict = Counter(sorted_lst)
return sorted_lst, count_dict
# 示例
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_list, duplicate_counts = sort_and_count_duplicates(lst)
print("降序排列后的列表:", sorted_list)
print("元素重复次数:", duplicate_counts)
```
在这个例子中,`sort_and_count_duplicates`函数会返回两个值:一个是降序排列的列表,另一个是一个字典,其中键是列表中的元素,值是它们各自的出现次数。
c 语言数组升序排列
可以使用冒泡排序或者快速排序来对数组进行升序排列。
冒泡排序的实现:
```c
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;
}
}
}
}
```
快速排序的实现:
```c
void quick_sort(int arr[], int left, int right) {
int i, j, temp;
if (left < right) {
i = left;
j = right;
temp = arr[left];
while (i < j) {
while (i < j && arr[j] >= temp) {
j--;
}
if (i < j) {
arr[i] = arr[j];
i++;
}
while (i < j && arr[i] < temp) {
i++;
}
if (i < j) {
arr[j] = arr[i];
j--;
}
}
arr[i] = temp;
quick_sort(arr, left, i - 1);
quick_sort(arr, i + 1, right);
}
}
```
调用示例:
```c
int main() {
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
int len = sizeof(arr) / sizeof(int);
bubble_sort(arr, len);
// quick_sort(arr, 0, len - 1);
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
阅读全文