请使用选择排序的代码实现:对n个整数实现从小到大的顺序排序。
时间: 2024-12-28 14:30:00 浏览: 15
选择排序是一种简单直观的排序算法,它的工作原理是每一次从未排序的部分找出最小(或最大)的一个元素,存放在已排序序列的末尾。以下是使用Python实现的选择排序代码:
```python
def selection_sort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# 找到剩余部分中最小的元素
min_index = i
for j in range(i+1, n):
if arr[j] < arr[min_index]:
min_index = j
# 将找到的最小元素与当前位置交换
arr[i], arr[min_index] = arr[min_index], arr[i]
return arr
# 示例
numbers = [64, 25, 12, 22, 11]
sorted_numbers = selection_sort(numbers)
print("Sorted array:", sorted_numbers)
相关问题
请使用选择排序的代码实现:对n个整数实现从小到大的顺序排序。c语言
选择排序是一种简单直观的排序算法,它的基本思想是每一次从未排序的元素中找到最小(大)的一个,存放在已排序序列的末尾。以下是C语言实现选择排序的例子:
```c
#include <stdio.h>
// 选择排序函数
void selectionSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) { // 遍历数组直到倒数第二个元素
int minIndex = i; // 初始化最小值索引为当前元素
// 找出未排序部分的最小值
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
// 将找到的最小值与当前位置交换
if (minIndex != i) {
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
// 测试函数
int main() {
int numbers[] = {5, 2, 8, 1, 9};
int n = sizeof(numbers) / sizeof(numbers[0]);
printf("Original array:\n");
for (int i = 0; i < n; i++) {
printf("%d ", numbers[i]);
}
selectionSort(numbers, n);
printf("\nSorted array in ascending order:\n");
for (int i = 0; i < n; i++) {
printf("%d ", numbers[i]);
}
return 0;
}
```
这个程序首先定义了一个选择排序函数,然后在`main`函数中创建一个整数数组并调用该函数对其进行排序。排序结束后,会打印出排序前后的数组。
使用合并排序算法对输入的n个整数,按照从小到大的顺序排序
以下是使用Python实现的合并排序算法,可以对输入的n个整数按照从小到大的顺序进行排序:
```python
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr) // 2
left_arr = arr[:mid]
right_arr = arr[mid:]
left_arr = merge_sort(left_arr)
right_arr = merge_sort(right_arr)
return merge(left_arr, right_arr)
def merge(left_arr, right_arr):
result = []
i = 0
j = 0
while i < len(left_arr) and j < len(right_arr):
if left_arr[i] < right_arr[j]:
result.append(left_arr[i])
i += 1
else:
result.append(right_arr[j])
j += 1
result += left_arr[i:]
result += right_arr[j:]
return result
if __name__ == '__main__':
arr = [4, 2, 1, 6, 8, 5, 3, 7]
print(merge_sort(arr))
```
输出结果为:
```
[1, 2, 3, 4, 5, 6, 7, 8]
```
在这个例子中,我们使用了递归来分割输入的数组,直到每个子数组的长度小于等于1。然后,我们使用合并函数将子数组合并为一个有序数组。最后,我们将所有子数组合并为一个有序数组。由于合并排序算法的时间复杂度为O(n log n),因此它是一种高效的排序算法。
阅读全文