用c++写数组排序程序
时间: 2023-09-09 09:05:37 浏览: 114
C++将数字从键盘读入数组并统计数字出现的次数,元素从大到小的顺序排序
### 回答1:
可以使用冒泡排序、选择排序、插入排序等算法来实现数组排序。以下是一个使用冒泡排序的示例程序:
#include <stdio.h>
void bubble_sort(int arr[], int len) {
int i, j, temp;
for (i = ; i < len - 1; i++) {
for (j = ; 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[] = {5, 2, 8, 4, 9, 1, 3, 7, 6};
int len = sizeof(arr) / sizeof(arr[]);
int i;
printf("排序前的数组:");
for (i = ; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
bubble_sort(arr, len);
printf("排序后的数组:");
for (i = ; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return ;
}
### 回答2:
使用C语言编写数组排序程序可以使用多种排序算法,比如冒泡排序、选择排序、插入排序、快速排序等等。下面以冒泡排序为例,给出C语言数组排序的程序实现:
```c
#include<stdio.h>
void bubbleSort(int arr[], int size) {
int i, j;
for(i = 0; i < size - 1; i++) {
for(j = 0; j < size - 1 - i; j++) {
if(arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
int arr[] = {4, 2, 8, 5, 1, 9, 3, 7, 6}; // 待排序数组
int size = sizeof(arr) / sizeof(arr[0]); // 数组大小
printf("排序前数组:\n");
for(int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
bubbleSort(arr, size); // 调用冒泡排序
printf("排序后数组:\n");
for(int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
以上程序实现了一个冒泡排序算法,在main函数中初始化一个待排序的整型数组arr,然后逐个输出排序前数组的元素,接着调用bubbleSort函数进行排序,最后再逐个输出排序后数组的元素。冒泡排序的原理是比较相邻两个元素的大小,如果前面的元素大于后面的元素,则交换两个元素的位置,一轮比较下来,最大的元素会移动到最后的位置。重复这个过程,直到整个数组排序完成。
### 回答3:
C语言中有多种排序算法可以用来对数组进行排序,其中最常见的有冒泡排序、选择排序、插入排序、快速排序等。
冒泡排序是一种简单直观的排序算法,它重复地遍历要排序的数组,每次比较相邻的两个元素,如果顺序不对则交换位置,直到整个数组排序完成。
选择排序是一种不稳定的排序算法,它每次从数组中选择最小的元素放到已排序的部分的末尾,直到整个数组排序完成。
插入排序是一种简单直观的排序算法,它将数组分为已排序和未排序两部分,每次将未排序部分的第一个元素插入到已排序部分的合适位置,直到整个数组排序完成。
快速排序是一种高效的排序算法,它基于分治的思想,通过一次排序将数组分为两部分,左边部分都小于右边部分,然后再分别对左右两部分进行递归排序,最后合并两部分完成排序。
以上只是对几种排序算法的简要介绍,实际在编写排序程序时,需要根据具体需求选择合适的算法,并对算法进行实现。排序程序的核心就是通过比较和交换元素来实现排序,具体的实现方式可以使用循环语句和条件语句来完成。在实现过程中,需要注意边界条件的处理和算法的正确性及效率问题。
阅读全文