编一个函数,实现数组元素排序的功能。在主函数中,输入一个数组,调用该函数,将该数组元素排序,输出排序后的数组元素。
时间: 2023-08-15 16:04:50 浏览: 41
以下是一个简单的冒泡排序的函数实现,可以对整型数组进行排序:
```python
def bubble_sort(arr):
n = len(arr)
for i in range(n):
# 提前退出冒泡循环的标志位
flag = True
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
# 交换元素
arr[j], arr[j+1] = arr[j+1], arr[j]
flag = False
# 没有数据交换,提前退出
if flag:
break
return arr
# 示例代码
arr = [64, 34, 25, 12, 22, 11, 90]
sorted_arr = bubble_sort(arr)
print(sorted_arr)
```
输出结果:
```
[11, 12, 22, 25, 34, 64, 90]
```
这里使用了冒泡排序算法,时间复杂度为 $O(n^2)$,不过对于小规模的数据集,该算法表现还不错。如果需要对其他类型的数组进行排序,只需要修改比较函数即可。
相关问题
c语言编一个函数,实现数组元素排序的功能。在主函数中,输入一个数组,调用该函数,将该数组元素排序,输出排序后的数组元素。
下面是一个使用冒泡排序算法实现的示例代码:
```
#include <stdio.h>
void bubble_sort(int arr[], int n)
{
int i, j, temp;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - i - 1; j++)
{
if (arr[j] > arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main()
{
int arr[10];
int i, n;
printf("请输入数组长度(不超过10):");
scanf("%d", &n);
printf("请输入%d个整数:\n", n);
for (i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
bubble_sort(arr, n);
printf("排序后的数组:\n");
for (i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在上面的代码中,bubble_sort() 函数用于实现冒泡排序算法,主函数中先输入数组长度和数组元素,再调用 bubble_sort() 函数进行排序,并最终输出排序后的数组元素。
一个函数,实现数组元素排序的功能。在主函数中,输入一个数组,调用该函数,将该数组元素排序,输出排序后的数组元素。 C语言
以下是一个使用冒泡排序算法的示例程序:
```c
#include <stdio.h>
void sort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
int arr[] = {5, 9, 1, 3, 4};
int n = sizeof(arr) / sizeof(arr[0]);
int i;
printf("Before sorting: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
sort(arr, n);
printf("\nAfter sorting: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出:
```
Before sorting: 5 9 1 3 4
After sorting: 1 3 4 5 9
```
在 `sort` 函数中,使用了冒泡排序算法。外层循环控制排序的轮数,内层循环控制每一轮中的比较和交换操作。通过比较相邻元素的大小,将大的元素往右移动,直到整个数组有序。在主函数中,首先输出未排序的数组元素,然后调用 `sort` 函数进行排序,最后输出排序后的数组元素。