用选择排序法对数组中的整数按由小到大排序的代码
时间: 2024-05-07 09:22:05 浏览: 124
以下是用选择排序法对数组中的整数按由小到大排序的代码:
```python
def selection_sort(arr):
for i in range(len(arr)):
min_idx = i
for j in range(i+1, len(arr)):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
```
其中,`arr` 是待排序的数组。在每一轮循环中,我们找到当前未排序部分中的最小元素,将其与未排序部分的第一个元素交换位置。这样,每一轮循环都可以将未排序部分的最小元素放在已排序部分的最后面。最终,所有元素都被排序。
相关问题
用选择排序法对数组中的整数按由小到大排序的c语言代码
下面是用选择排序法对数组中的整数按由小到大排序的C语言代码:
```c
#include <stdio.h>
void selection_sort(int arr[], 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 (arr[j] < arr[min_idx]) {
min_idx = j;
}
}
// 将未排序部分的最小值放到已排序部分的末尾
int temp = arr[i];
arr[i] = arr[min_idx];
arr[min_idx] = temp;
}
}
int main() {
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr) / sizeof(arr[0]);
selection_sort(arr, n);
printf("排序后的数组:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果:
```
排序后的数组:
11 12 22 25 64
```
用选择排序法对数组中的整数按由小到大排序
选择排序是一种简单直观的排序算法。其基本思想是在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,直到所有元素均排序完毕。以下是选择排序的基本步骤:
1. **第一轮**:从未排序的部分中选出最小的元素,将它与第一个元素交换位置,此时第一个元素就是已排序部分的最小值。
2. **第二轮**:在剩余未排序的元素中找到最小的元素,与第二个元素交换,现在前两个元素已经排好序了。
3. **重复此过程**,每次迭代都从未排序的部分选出最小元素并放置在已排序部分的末尾,直到整个序列都被排序。
这是一个示例性的Python代码实现:
```python
def selection_sort(arr):
n = len(arr)
for i in range(n):
# 找到剩余部分中的最小值
min_idx = i
for j in range(i+1, n):
if arr[j] < arr[min_idx]:
min_idx = j
# 将找到的最小值与当前位置的元素交换
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
# 示例
arr = [64, 25, 12, 22, 11]
sorted_arr = selection_sort(arr)
print("排序后的数组:", sorted_arr)
阅读全文