10个整数排序怎么用c语言编程

时间:2025-01-28 20:40:01 网络游戏

方法一:冒泡排序法

冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

```c

include

void bubble_sort(int arr) {

int i, j, temp;

for (i = 0; i < 10 - 1; i++) {

for (j = 0; j < 10 - i - 1; j++) {

if (arr[j] > arr[j + 1]) {

temp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = temp;

}

}

}

}

int main() {

int array;

printf("请任意输入十个整数:");

for (int i = 0; i < 10; i++) {

scanf("%d", &array[i]);

}

bubble_sort(array);

printf("排序后的整数:");

for (int i = 0; i < 10; i++) {

printf("%d ", array[i]);

}

return 0;

}

```

方法二:选择排序法

选择排序是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

```c

include

void SelectSort(int a[], int n) {

int i, j, temp;

for (i = 0; i < n - 1; i++) {

int minPos = i;

for (j = i + 1; j < n; j++) {

if (a[j] < a[minPos]) {

minPos = j;

}

}

temp = a[minPos];

a[minPos] = a[i];

a[i] = temp;

}

}

void output(int a[], int n) {

for (int i = 0; i < n; i++) {

printf("%d\t", a[i]);

}

printf("\n");

}

void input(int a[], int n) {

for (int i = 0; i < n; i++) {

scanf("%d", &a[i]);

}

}

int main() {

int a;

printf("随机输入十个数字:\n");

input(a, 10);

SelectSort(a, 10);

output(a, 10);

return 0;

}

```

方法三:指针方法

这种方法使用指针来遍历和交换数组元素,从而实现排序。

```c

include

void sort(int x[], int n) {

int i, j, k, t;

for (i = 0; i < n - 1; i++) {

for (j = 0; j < n - i - 1; j++) {

if (x[j] < x[j + 1]) {

k = j;

t = x[j];

x[j] = x[j + 1];

x[j + 1] = t;

}

}

}

}

int main() {

int a;

printf("请输入十个数: ");

for (int i = 0; i < 10; i++) {

scanf("%d,", &a[i]);

}

sort(a, 10);

printf("排序后的整数: ");

for (int i = 0; i < 10; i++) {

printf("%d ", a[i]);

}

return 0;

}

```

方法四:快速排序法

快速排序是一种高效的排序算法,采用分治法的一个典型应用。