选择排序

选择排序

介绍

选择排序(英语:Selection sort)是一种简单直观的排序算法。它的工作原理是从第一个元素往后找,把当前位置前大于当前位置的元素与当前元素换位置,进而达到有序的排序方法。

性质

稳定性

由于 swap(交换两个元素)操作的存在,选择排序是一种不稳定的排序算法。

时间复杂度

选择排序的最优时间复杂度、平均时间复杂度和最坏时间复杂度均为O(n^2) 。

源代码

// C++ Version
#include<bits/stdc++.h>
#define N 105
int a[N];
void swap(int *a,int* b){
    int s=*a;
    *a=*b;
    *b=s;
}
void selection_sort(int* a, int n) {
  for (int i = 0; i < n; ++i) {
    for(int j=0;j<i;j++){
        if(a[j]>a[i]){
            swap(&a[j],&a[i]);
        }
    }
  }
}
int main(void){
    int n,i;
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    selection_sort(a,n);
    for(i=0;i<n;i++){
        printf("%d ",a[i]);
    }
    return 0;
}
posted @ 2022-05-28 11:52  Abruptrainlover  阅读(57)  评论(0)    收藏  举报