编写一函数实现对起始地址是a,长度是n的整型数组从小到大排序。
时间: 2023-11-27 12:53:50 浏览: 33
下面是一个简单的选择排序的实现:
```c
void sort(int *a, int n) {
int i, j, min_idx;
for (i = 0; i < n-1; i++) {
min_idx = i;
for (j = i+1; j < n; j++) {
if (a[j] < a[min_idx]) {
min_idx = j;
}
}
int temp = a[i];
a[i] = a[min_idx];
a[min_idx] = temp;
}
}
```
其中,变量`min_idx`表示当前未排序部分中最小元素的下标。在每一轮循环中,找到未排序部分的最小元素,将其与未排序部分的第一个元素交换。循环结束后,数组就被排序了。可以通过调用该函数来对任意整型数组进行排序。
注意:该实现并不是最优的排序算法,时间复杂度为O(n^2),在实际应用中可能会有更好的排序算法选择。
相关问题
.编写一函数实现对起始地址是a,长度是n的整型数组从小到大排序
以下是一个简单的冒泡排序实现:
```c
void sort(int *a, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (a[j] > a[j + 1]) {
int tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
}
```
调用方式如下:
```c
int a[] = {3, 1, 4, 2, 5};
int n = 5;
sort(a, n);
```
这样就可以将数组a从小到大排序了。
编写一函数实现对起始地址是a,长度是n的整型数组从小到大排序。函数原型为:void sort(int *a, int n);用C语言函数
以下是用C语言实现对起始地址是a,长度是n的整型数组从小到大排序的函数sort:
```c
void sort(int *a, int n) {
int i, j, temp;
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
if (a[i] > a[j]) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
```
该函数使用了冒泡排序算法,依次比较相邻两个元素的大小,如果前一个元素大于后一个元素,则交换它们的位置。经过一轮比较后,最大的元素就会被交换到数组的最后一个位置。重复执行这个过程,直到所有元素都被排序。