方法一:冒泡排序法
冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
```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;
}
```
方法四:快速排序法
快速排序是一种高效的排序算法,采用分治法的一个典型应用。