使用Python实现选择排序算法

选择排序是简单直观的排序算法,核心思想是每次从待排序元素中选出最小(或最大)元素,放入已排序部分末尾,直至完成排序。步骤为:初始化假设当前元素最小,遍历未排序部分找更小元素,交换到已排序末尾,重复至结束。 Python实现中,外层循环变量i控制已排序部分末尾(从0到n-2),内层循环变量j遍历未排序部分(从i+1到n-1)找最小元素位置min_index,最后交换arr[i]与arr[min_index]。测试数组[64,25,12,22,11]排序后为[11,12,22,25,64]。 时间复杂度O(n²),空间复杂度O(1),原地排序。特点:简单易理解,但不稳定(相同元素可能交换顺序),适合小规模数据。

阅读全文
使用Java实现选择排序算法

选择排序是一种简单直观的排序算法,核心思想是每次从无序部分选取最小(或最大)元素,放入已排序部分末尾,重复此过程直至全部有序。其基本思路为:外层循环确定已排序部分的末尾位置,内层循环在未排序部分中寻找最小值,交换该最小值与外层循环当前位置的元素,直至完成排序。 Java实现中,`selectionSort`方法通过两层循环实现:外层循环遍历数组(`i`从0到`n-2`),内层循环(`j`从`i+1`到`n-1`)寻找未排序部分的最小值索引`minIndex`,最后交换`i`位置元素与`minIndex`位置元素。以数组`{64,25,12,22,11}`为例,每轮交换后逐步构建有序数组,最终结果为`[11,12,22,25,64]`。 时间复杂度为O(n²),适用于小规模数据。该算法逻辑简单、代码易实现,是理解排序基础思想的典型示例。

阅读全文