目录

定义节点结构

选择排序思路

选择排序代码

VC 6.0 全代码+效果图


以升序为例

定义节点结构

typedef struct node{int data;struct node *next;
}Node,*LinkList;

选择排序思路

先假设 p2最小,pmin指向p2,然后p2 向后移动,依次比较p2->data 与pmin->data 的大小,用pmin指向最小的节点,p2走到最后节点 后,pmin与p1作比较满足条件  进行data域值的交换。具体过程见下面代码。

选择排序代码

int selecrSort(LinkList phead){LinkList p1=phead->next;//存在头节点,p1指向第一个LinkList p2=NULL;//int temp;//定义临时变量为后面做交换时使用LinkList pmin=NULL;//定义最小值指针while(p1->next!=NULL){p2=p1->next;//从最小pmin=p2;//while(p2!=NULL){// 这个循环,p2指针向后找最小的data 并用pmin指向这个最小值的节点if(p2->data<=pmin->data){pmin=p2;}p2=p2->next;}if( p1->data >= pmin->data){//比较最小值节与前p1的大小temp=p1->data;p1->data=pmin->data;pmin->data=temp;}p1=p1->next;}return 0;}

VC 6.0 全代码+效果图

#include <stdio.h>
#include <stdlib.h>
typedef struct node{int data;struct node *next;
}Node,*LinkList;
int  initHead(LinkList *phead);//创建头节点
int createLink(LinkList *phead);//创建链表
int output(LinkList phead);//
int selecrSort(LinkList phead);int main()
{LinkList head;initHead(&head);printf("input numbers(0结束):\n");createLink(&head);selecrSort(head);output(head);return 0;
}int selecrSort(LinkList phead){LinkList p1=phead->next;//存在头节点,p1指向第一个LinkList p2=NULL;//int temp;//定义临时变量为后面做交换时使用LinkList pmin=NULL;//定义最小值指针while(p1->next!=NULL){p2=p1->next;//从最小pmin=p2;//while(p2!=NULL){// 这个循环,p2指针向后找最小的data 并用pmin指向这个最小值的节点if(p2->data<=pmin->data){pmin=p2;}p2=p2->next;}if( p1->data >= pmin->data){//比较最小值节与前p1的大小temp=p1->data;p1->data=pmin->data;pmin->data=temp;}p1=p1->next;}return 0;}int  initHead(LinkList *phead){LinkList p=NULL;p=(LinkList)malloc(sizeof(Node));p->next=NULL;*phead=p;return 0;
}
int createLink(LinkList *phead){int a;LinkList p=NULL;LinkList pre=*phead;while(1){scanf("%d",&a);if(a==0){return 0;}p=(LinkList)malloc(sizeof(Node));p->next=NULL;p->data=a;pre->next=p;pre=pre->next;}return 0;}
int output(LinkList phead){LinkList p=phead->next;while(p!=NULL){printf("%d ",p->data);p=p->next;}return 0;
}

选择排序 c语言(链表法)相关推荐

  1. 重排链表-c语言链表法解决

    重排链表-c语言链表法解决 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → - → Ln - 1 → Ln 请将其重新排列后变为: L0 → Ln → L1 → L ...

  2. c语言选择排序_C语言——选择排序

    1 选择排序(5分) 题目内容:编写选择排序,要求排序过程调用函数实现,在主函数输入n个数据,调用函数后,输出排好序的元素输入格式:输入整型数n,并输入n个整数,输入数据用空格隔开输出格式:输出排好序 ...

  3. 选择排序——C语言代码

    介绍选择排序 下面是我在网上找的示例图,便于更好地理解选择排序 通过这个图我们明白K只是一个标记,它标记的是比较中 小的数.我们第一轮我们可以找到所有数中最小的数,然后让它和处于第一位的数进行位置交换 ...

  4. 选择排序C语言实现(源代码)

    选择排序 对一个元素个数为20个的随机数组进行选择排序 #include <stdio.h> #include <stdlib.h> #include <time.h&g ...

  5. 简单选择排序——C语言实现

    选择排序思想:若按照递增顺序对顺序表进行排列,在n个元素的顺序表中,从第i(i=1)个元素开始遍历到第n-1个元素,在遍历过程中都将第i个元素依次与第i+1到第n个元素进行比较,确定最小的元素,如果最 ...

  6. 简单选择排序(C语言)

    数据结构总目录 简单选择排序 1. 图文解析 遍历序列,每次在当前位置向后扫描序列,记下最小值的位置,然后将最小值与当前位置的值交换 排序过程 序列:{ 5, 4, 3, 2, 1 } 从小到大排列 ...

  7. 数组 选择排序 c语言

    解法一: #include <stdio.h> #define NUM 10 int main() {int a[NUM],i,j,k,t;printf("请输入%d个数&quo ...

  8. 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...

    #include #include void SelectSort(int *a,int n);//预声明要调用的函数 int main(void) { int k; int x[]={,,,,,,, ...

  9. python单链表排序_单链表排序之选择排序

    单链表排序是单链表的常见编程任务之一,也是面试中经常出现的题目.单链表排序的关键是交换算法,需要额外考虑.选择排序是比较直观的排序算法之一,这里就使用选择排序实现单链表的排序. C实现代码如下: Li ...

最新文章

  1. otsu阈值分割算法原理_大津二值化算法OTSU的理解
  2. VTK:定向圆柱体用法实战
  3. 服务器cpu,内存正常, 部分网站打不开,提示死锁,应用程序池回收就正常,如何解决?...
  4. 【解题报告】Leecode 500. 键盘行——Leecode每日一题系列
  5. Eclipse使用Maven插件创建Web项目时出错:Could not resolve archetype org.apache.maven.archetypes
  6. 移动优先的响应式布局
  7. 使用浏览器地址栏调用CXF Webservice的写法
  8. 别人在抢红包,程序员在研究红包算法
  9. Hyperledger fabric通道(Channel)的新建、管理、节点如何加入channel
  10. 百度文库免费复制文字_如何复制百度文库上的内容——解答!
  11. vue particles.js 登录背景实现粒子动效
  12. html中加入点击事件,html中的点击事件
  13. Reason: Canonical names should be kebab-case (‘-‘ separated), lowercase alpha-numeric characters and
  14. python pil_Python PIL composite()用法及代码示例
  15. 关于javascript中避免使用eval的理解
  16. Python小白的数学建模课-21.关键路径法
  17. Python List 包含关系判定
  18. apache2.2配置https协议(key文件、crt文件、csr文件生成方法)
  19. [软件工具][原创]pcl引用库一键配置到VisualStudio中支持vs2015-v2022使用教程
  20. php 课程设计总结心得体会,课程设计心得体会

热门文章

  1. 正面刚甲骨文?那不是华为GaussDB的格局
  2. 第三十一题——[MRCTF2020]Ez_bypass
  3. 作为一名程序员你凭什么傲视群雄
  4. 相声评书段子有声书音频系统开发
  5. 时间片轮转(RR)、优先级调度算法以及多级反馈队列调度算法
  6. 计算机系男生穿搭,七个原则告诉你,男士穿搭要这么搞!
  7. 用matlab实现Hessian矩阵的计算过程
  8. 如何查看电脑内存条型号
  9. 【神经网络】激活函数softmax,sigmoid,tanh,relu总结
  10. Hacking Team事件导致一名韩国情报官员死亡