怎么将一个无序数组按从小到大输出,且对数组没有修改
时间: 2024-01-22 15:04:05 浏览: 32
要将一个无序数组按照从小到大的顺序输出,可以使用排序算法对其进行排序,但是不修改原数组。常用的排序算法有冒泡排序、选择排序、插入排序、归并排序和快速排序等。
下面以归并排序为例,展示如何按照从小到大的顺序输出一个无序数组,同时不修改原数组:
```c
#include <stdio.h>
#include <stdlib.h>
void merge(int arr[], int left, int mid, int right, int temp[]) {
int i = left, j = mid + 1, k = 0;
while (i <= mid && j <= right) {
if (arr[i] <= arr[j]) {
temp[k++] = arr[i++];
} else {
temp[k++] = arr[j++];
}
}
while (i <= mid) {
temp[k++] = arr[i++];
}
while (j <= right) {
temp[k++] = arr[j++];
}
for (int l = 0; l < k; l++) {
arr[left + l] = temp[l];
}
}
void mergeSort(int arr[], int left, int right, int temp[]) {
if (left < right) {
int mid = (left + right) / 2;
mergeSort(arr, left, mid, temp);
mergeSort(arr, mid + 1, right, temp);
merge(arr, left, mid, right, temp);
}
}
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int arr[] = {6, 3, 9, 8, 1, 5, 2, 7, 4};
int size = sizeof(arr) / sizeof(int);
int *temp = (int *) malloc(size * sizeof(int));
mergeSort(arr, 0, size - 1, temp);
printf("排序后的数组为:");
printArray(arr, size);
free(temp);
return 0;
}
```
这段代码采用归并排序的算法,对原数组进行排序,并将排序后的结果输出,同时不修改原数组。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)