选择排序
选择排序
介绍
选择排序(英语: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;
}

浙公网安备 33010602011771号