首页 > 代码库 > 选择排序
选择排序
选择排序(如果递增排序)
每次选取从当前结点到末尾结点中最小的一个与当前结点交换,每一轮固定一个元素位置。
时间复杂度O(n^2),空间复杂度O(1)。以下的演示样例代码以带头结点的链表为存储结构:
#include<stdio.h> #include<stdlib.h> #define Elemtype double struct Node { Elemtype data; struct Node *next; }; void listsort(Node*h) { Node*p=h->next; while(p!=NULL) { Node*q=p; Node*k=p; Elemtype min=p->data; while(q!=NULL) { if(min>q->data) { min=q->data; k=q; } q=q->next; } Elemtype tmp=p->data; p->data=http://www.mamicode.com/k->data;"%lf",&p->data); p->next=h->next; h->next=p; } listsort(h); Node*q=h->next; while(q!=NULL) { printf("%lf\n",q->data); q=q->next; } return 0; }
选择排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。