阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

什么是选择排序?

28次阅读
没有评论

共计 1438 个字符,预计需要花费 4 分钟才能阅读完成。

导读 选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。
算法步骤

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

重复第二步,直到所有元素均排序完毕。

动图演示

什么是选择排序?

代码实现
JavaScript 代码实现

实例

function selectionSort(arr) {
    var len = arr.length;
    var minIndex, temp;
    for (var i = 0; i 
Python 代码实现

实例

def selectionSort(arr):
    for i in range(len(arr) - 1):
        # 记录最小数的索引
        minIndex = i
        for j in range(i + 1, len(arr)):
            if arr[j] 
Go 代码实现

实例

func selectionSort(arr []int) []int {length := len(arr)
        for i := 0; i  arr[j] {min = j}
                }
                arr[i], arr[min] = arr[min], arr[i]
        }
        return arr
}
Java 代码实现

实例

public class SelectionSort implements IArraySort {

    @Override
    public int[] sort(int[] sourceArray) throws Exception {int[] arr = Arrays.copyOf(sourceArray, sourceArray.length);

        // 总共要经过 N-1 轮比较
        for (int i = 0; i 
PHP 代码实现

实例

function selectionSort($arr)
{$len = count($arr);
    for ($i = 0; $i 
C 语言

实例

void swap(int *a,int *b) // 交換兩個變數
{
    int temp = *a;
    *a = *b;
    *b = temp;
}
void selection_sort(int arr[], int len)
{
    int i,j;

        for (i = 0 ; i 
C++

实例

template // 整數或浮點數皆可使用,若要使用物件(class)時必須設定大於(>)的運算子功能
void selection_sort(std::vector& arr) {for (int i = 0; i 
C#

实例

static void selection_sort(T[] arr) where T : System.IComparable{// 整數或浮點數皆可使用
        int i, j, min, len = arr.Length;
        T temp;
        for (i = 0; i  0)
                                min = j;
                temp = arr[min];
                arr[min] = arr[i];
                arr[i] = temp;
        }
}
Swift

实例

import Foundation
/// 选择排序 /// /// - Parameter list: 需要排序的数组 func selectionSort(_ list: inout [Int]) -> Void {for j in 0..<list.count - 1 {var minIndex = j
        for i in j..<list.count {if list[minIndex] > list[i] {minIndex = i
            }         }         list.swapAt(j, minIndex)     } }

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1438字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中