首页 > Java > java教程 > 了解选择排序算法(附Java示例)

了解选择排序算法(附Java示例)

Patricia Arquette
发布: 2025-01-18 02:11:09
原创
117 人浏览过

选择排序:分步指南

选择排序是一种简单的排序算法。 它反复从列表的未排序部分中查找最小元素并将其放在开头。这个过程一直持续到整个列表被排序为止。

选择排序的工作原理

让我们用一个例子来说明,按升序对这个数组进行排序:

Understanding Selection Sort Algorithm (with Examples in Java)

迭代 1:

目标是将最小的元素放在开头。我们首先假设第一个元素是最小值。

Understanding Selection Sort Algorithm (with Examples in Java)

我们将当前最小值与每个后续元素进行比较,如果找到更小的元素,则更新最小值。

Understanding Selection Sort Algorithm (with Examples in Java)

这将持续到确定实际的最小值。

Understanding Selection Sort Algorithm (with Examples in Java)

最后,我们将最小元素与第一个元素交换。

Understanding Selection Sort Algorithm (with Examples in Java)

第一个元素现已排序。 后续迭代将仅考虑未排序的部分。

后续迭代:

对每个剩余的未排序元素重复此过程。

Understanding Selection Sort Algorithm (with Examples in Java)

算法迭代 n-1 次(其中 n 是数组的长度)。 第五次迭代后(对于六元素数组),最后一个元素被隐式排序。

选择排序实现(Java):

<code class="language-java">import java.util.Arrays;

public class SelectionSortTest {
    public static void main(String[] args) {
        int[] arr = {8, 2, 6, 4, 9, 1};
        System.out.println("Unsorted array: " + Arrays.toString(arr));
        selectionSort(arr);
        System.out.println("Sorted array: " + Arrays.toString(arr));
    }

    public static void selectionSort(int[] arr) {
        int size = arr.length;

        // Iterate through the array size-1 times
        for (int i = 0; i < size - 1; i++) {
            int minIndex = i;
            // Find the minimum element in the unsorted part
            for (int j = i + 1; j < size; j++) {
                if (arr[j] < arr[minIndex]) {
                    minIndex = j;
                }
            }
            // Swap the minimum element with the first unsorted element
            int temp = arr[minIndex];
            arr[minIndex] = arr[i];
            arr[i] = temp;
        }
    }
}</code>
登录后复制

输出:

未排序数组:[8,2,6,4,9,1] 排序数组:[1, 2, 4, 6, 8, 9]

复杂性分析:

  • 时间复杂度: 所有情况下都是 O(n²)(最佳、平均、最差)。 无论输入顺序如何,嵌套循环始终执行固定次数。
  • 空间复杂度: O(1)。 这是一种就地算法,需要恒定的额外空间。

结论:

选择排序的 O(n²) 时间复杂度使其对于大型数据集效率低下。 它最适合小型阵列或简单性优先于性能的情况。

以上是了解选择排序算法(附Java示例)的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板