选择排序算法
一 概述
选择排序是一种简单直观的排序算法,其核心是"选择-交换”。
将数组分为已排序区间(前部)和未排序区间(后部)每轮从未排序区间选择最小元素,将其与未排序区间的第一个元素交换,通过n-1轮(数组长度为n)完成排序。
二 关键步骤
以数组[6,4,7,8,2]为例:
第1轮:找到最小值 2,与第一个元素 6交换 → [2,4,7,8,6]
第2轮:在剩余部分找到最小值 4(已在正确位置) → 保持
第3轮:找到 6与 7交换 → [2,4,6,8,7]
第4轮:找到 7与 8交换 → 完成排序
三 C++代码实现
#include <iostream>
using namespace std;
void selectionSort(int arr[], int n) {
for (int i = 0; i < n-1; ++i) { // 需要n-1轮选择
int minIndex = i; // 记录最小值的位置
// 在未排序区间[i, n-1]中找最小值
for (int j = i+