順序表:文章來源:http://www.zghlxwxcb.cn/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]);
}
}
單鏈表:文章來源地址http://www.zghlxwxcb.cn/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模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!