顺序表:文章来源:https://www.toymoban.com/news/detail-690049.html
void Swap(int &a,int &b){
int temp;
temp=a;
a=b;
b=temp;
}
void SelectSort(int A[],int n){
int min,i,j;
for(i=0;i<n-1;i++){
min=i;
for(j=i+1;j<n;j++)
if(A[j]<A[min])
min=j;
if(min!=i)
Swap(A[i],A[min]);
}
}
单链表:文章来源地址https://www.toymoban.com/news/detail-690049.html
void SelectSort(Linklist &L){
LNode *p,*q,*current;
int min;
if(!L||!L->next)
return;
for(p=L;p;p=p->next){ //遍历p,让每次p的值都为最小
q=p; //q和current每次都重置
current=p;
min=p->data;
while(q){ //遍历q
if(q->data<min){
min=q->data; //最小值data赋给min
current=q; //current指向最小结点
}
q=q->next;
}
if(current!=p){ //首元不为最小则最小值data与首元互换
current->data=p->data;
p->data=min;
}
}
}
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*Linklist;
void selectsort(Linklist &L){
if(!L||!(L->next))
return;
LNode *p,*q,*s;
int min,t;
for(p=L;p;p=p->next)
min=p->data;
s=p;
for(q=p->next;q;q=q->next)
if(q->data<min){ //min存放最小值,s指向最小元素
min=q->data;
s=q;
}
if(s!=p){
t=s->data;
s->data=p->data;
p->data=t;
}
}
到了这里,关于【8 排序】简单选择排序。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!