选择排序

简介: 选择排序

选择排序是一种简单的排序算法,它通过在每一轮迭代中找到剩余未排序部分中的最小(或最大)元素,并将其与第一个未排序的位置交换来逐步将数组中的元素按照升序或降序排列。以下是选择排序的基本步骤:

  1. 初始化

    • 设定两个索引变量min_indexi,分别用于存储当前最小元素的索引和当前遍历到的元素的索引。
  2. 遍历数组

    • 从第二个元素开始,依次比较剩余的每个元素。
  3. 更新最小值索引

    • 如果当前元素比之前找到的最小元素更小(对于升序排序),则更新min_index为当前元素的索引。
  4. 交换元素

    • 在一轮迭代结束后,将当前最小元素与第一个未排序位置的元素交换。
  5. 递归过程

    • i递增,重复以上过程,直到所有元素都已排序。

以下是一个Python实现选择排序的例子:

def selection_sort(arr):
    for i in range(len(arr)):
        min_index = i

        # 找到剩余未排序部分中的最小元素
        for j in range(i+1, len(arr)):
            if arr[j] < arr[min_index]:
                min_index = j

        # 将找到的最小元素与第一个未排序位置的元素交换
        arr[i], arr[min_index] = arr[min_index], arr[i]

# 示例
arr = [64, 34, 25, 12, 22, 11, 90]
selection_sort(arr)
print("Sorted array:", arr)

在这个例子中,我们使用了一个额外的循环来寻找当前最小元素的索引。然后,在每轮迭代结束时,我们将找到的最小元素与第一个未排序位置的元素交换。这样可以确保每次迭代后,至少有一个元素被放置在正确的位置上。

目录
相关文章
|
1月前
|
人工智能 搜索推荐 C语言
选择排序
选择排序是一种简单直观的排序算法。其基本思想是每次从未排序部分找到最小(或最大)元素,将其放到已排序部分的末尾,直至所有元素排序完成。示例代码展示了如何使用 C 语言实现选择排序,并对一个整数数组进行排序。
23 5
|
6月前
|
算法 搜索推荐 Java
选择排序就是这么容易
选择排序就是这么容易
38 0
|
7月前
|
人工智能 算法 搜索推荐
2.选择排序
2.选择排序
28 0
|
7月前
|
搜索推荐 C++
C++选择排序的实现
C++选择排序的实现
|
搜索推荐
16 选择排序
16 选择排序
33 0
|
搜索推荐 C语言
选择排序就这么简单
从上一篇已经讲解了冒泡排序了,本章主要讲解的是选择排序,希望大家看完能够理解并手写出选择排序的代码,然后就通过面试了!如果我写得有错误的地方也请大家在评论下指出。
174 0
选择排序就这么简单
|
机器学习/深度学习 搜索推荐 算法
选择排序的实现
选择排序的实现
109 1
|
算法 搜索推荐 测试技术
直接选择排序
直接选择排序
114 0
直接选择排序
|
搜索推荐 算法 JavaScript
Day2 选择排序
Day2 选择排序