选择排序及其实现

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的元素中选出最小的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。

时间复杂度:O(n^2)

排序方式:原地排序,不稳定排序

实现代码

/**
 * 选择排序(升序)
 */
public void selectSort(int[] array) {
    int length = array.length;
    for (int i = 0; i < length - 1; i++) {
        int minIndex = selectMinIndex(array, i, length);
        int item = array[i];
        array[i] = array[minIndex];
        array[minIndex] = item;
    }
}
/**
 * 从数组的指定区域[from,to)选择最小元素的下标
 */
public int selectMinIndex(int[] array, int from, int to) {
    int minIndex = from;
    for (int i = from + 1; i < to; i++) {
        if (array[i] < array[minIndex]) {
            minIndex = i;
        }
    }
    return minIndex;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。