数据结构与算法-----选择排序
浏览数:13916 

选择排序
12 13 15 23 20 31 19 26 24

1)算法

首先在未排序序列中找到最小元素,并于该序列的首元素做交换,再从剩余的未排序序列中继续寻找最小元素重复以上过程,直到未排序序列中仅剩一个元素为止。

2)评价

平均时间复杂度O(N^2),稳定,对数据的有序性不敏感。相对冒泡而言,因为交换的次数少,略优于冒泡。

#include<iostream>
#include<cstdlib>
using namespace std;
int getRandom(){
int num=rand()%100;
return num;
}
int* getArray(int *data,int size){
int num;
for(int i=0;i<size;++i){
 num=getRandom();
 data[i]=num;
//  *(data+i)=i;
}
return data;
}
void Print(int *data,int size){
for(int i=0;i<size;++i){
 cout<<data[i]<<' ';
}
cout<<endl;
}
void chioceSort(int *data,int size){
for(int i=0;i<size-1;++i){
 int min=i;
 for(int j=i+1;j<size;++j){
  if(data[j]<data[min])
   min=j;
 }
 if(min!=i){
  int tmp=data[i];
  data[i]=data[min];
  data[min]=tmp;  
 }
}
}
int main(){
int *data;
int size;
cout<<"Pls input the size:";
cin>>size;
srand(time(0));
int* tmp=getArray(data,size);
chioceSort(tmp,size);
Print(tmp,size);

return 0;
}

联系管理员
 
 
 
 
 工作时间
周一至周五 :9:30-17:30
会员登录
登录
我的资料
留言
回到顶部