【8 排序】简单选择排序。

这篇具有很好参考价值的文章主要介绍了【8 排序】简单选择排序。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【8 排序】简单选择排序。,8 排序,算法,java,数据结构

【8 排序】简单选择排序。,8 排序,算法,java,数据结构【8 排序】简单选择排序。,8 排序,算法,java,数据结构

顺序表:

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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包