首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

排序(之抉择排序)

2012-09-03 
排序(之选择排序)选择排序是不稳定排序,平均算法复杂度和最坏算法复杂度为:O(n^2);空间复杂度为O(1);稳定

排序(之选择排序)

选择排序是不稳定排序,平均算法复杂度和最坏算法复杂度为:O(n^2);空间复杂度为O(1);

稳定性说明:

举个例子,序列5 8 5 2 9, 我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法

#include<stdio.h>void select_sort(int a[],int n){int i,j,pos,tmp;for(i=0;i<n;i++){pos=i;for(j=i+1;j<n;j++)//选取第i趟的最小元素{if(a[pos]>a[j]){pos=j;}}tmp=a[pos];a[pos]=a[i];a[i]=tmp;}}void main(){int a[]={49,38,65,97,76,13,27,49};int n=sizeof(a)/sizeof(a[0]);select_sort(a,n);for(int i=0;i<n;i++){printf("%d\n",a[i]);}}


热点排行