首页 > 其他分享 >选择排序

选择排序

时间:2023-02-02 22:47:19浏览次数:40  
标签:minIndex nums int 元素 选择 ++ 排序 size

#include <iostream>
#include <vector>
using namespace std;
/**
 * 插入排序
 * 首先找到数组中最小的元素和第一个元素进行交换
 * 再次找到剩下的数组元素中最小的元素和第二个元素进行交换
 * 以此类推
 *
 * 算法性能:1.运行时间与输入无关,
 *         2.数据移动是最少的
 *         对于N个元素的数组,选择排序大约需要(N^2)/2次比较和N次交换。
 * @param nums
 */
void SelectionSort(vector<int>& nums){
    for(int i = 0;i < nums.size();i++){
        int minIndex = i;       //最小元素索引
        for(int j = i;j < nums.size();j++){
            if(nums[minIndex] > nums[j]){
                minIndex = j;
            }
        }
        int temp = nums[i];
        nums[i] = nums[minIndex];
        nums[minIndex] = temp;
    }
}

int main() {
    int a[]  = {7,6,5,4,3,2,1};
    vector<int> nums(a,a+7);
    SelectionSort(nums);
    for(int i = 0;i < nums.size();i ++){
        cout<<nums[i]<<endl;
    }
    return 0;
}

标签:minIndex,nums,int,元素,选择,++,排序,size
From: https://www.cnblogs.com/poteitoutou/p/17087640.html

相关文章