正宗选择排序算法C++版本,看图一目了然。并总结三种简单排序算法时间复杂度分析

最低时间复杂度O(n2),最高时间复杂度O(n2),平均时间复杂度O(n^2)

正宗选择排序算法
正宗选择排序算法

#include <iostream>
#include <vector>
#include <stack>
#include <cstring>
#include <string>
#include <queue>
#include <algorithm>
#include "TreeNode.h"
using namespace std;

void mySwap(int num[], int i, int j){
    int temp = num[i];
    num[i] = num[j];
    num[j] = temp;
}

// 正宗选择排序算法
// 原理:从“未排序区间”中找出最小的元素,并将其放到“排序区间”的末尾,保证每次比较最多只交换一次数据
void SelectSort(int num[], int length){
    int i, j, min;
    for(i = 0;i < length - 1; i++){
        min = i;
        for(j = i + 1; j < length; j++){
            if(num[j] < num[min])
                min = j;
        }
        if(i != min)
            mySwap(num, i, min);
    }
}


int main(int argc, char* argv[]){
    int arr[8] = {8,7,6,5,4,3,2,1};
    SelectSort(arr, sizeof(arr)/sizeof(arr[0]));
    for(int i = 0; i < 8; i++){
        cout<<arr[i]<<"\t";
    }
    return 0;
}

相关文章:

  • 2021-11-27
  • 2021-11-27
  • 2022-01-08
  • 2021-10-21
  • 2021-12-02
  • 2021-06-22
  • 2021-06-27
  • 2022-01-11
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-27
  • 2021-10-26
  • 2021-09-30
相关资源
相似解决方案