#include <stdio.h>
#include <stdlib.h>
#include <time.h> //用到了time函数#define arraySize 10typedef int elemType;typedef struct List
{elemType elem;struct List *next;
}Node;//产生随机数组
void createRandomArray(int array[])
{int i,number;srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样for (i=0; i<arraySize; i++){array[i] = rand() % 101; //产生0-100的随机数}
}//创建单链表
struct List *createList(int num,int arrayList[])
{Node *head,*p1,*p2;if((head=(Node*)malloc(sizeof(Node)))==NULL){printf("create error\r\n");exit(0);}head->elem=0;head->next=NULL;p1=head;int i;for(i=0;i<num;i++){if((p2=(Node*)malloc(sizeof(Node)))==NULL){printf("create error\r\n");exit(0);}p2->elem=arrayList[i];p2->next=NULL;p1->next=p2;p1=p2;}return head;
}//遍历单链表
void displayList(Node *head)
{printf("遍历链表:");Node *p1;if(head==NULL){printf("空链表\r\n");//exit(0);}else{for(p1=head->next;p1!=NULL;p1=p1->next){printf("%d\t",p1->elem);}printf("\r\n");}
}//判断链表是否为空
bool isEmptyList(Node* head)
{return head==NULL;//||head->next==NULL;
}//链表排序  从小到大排 选择排序
void sortList(Node* head)
{printf("------进行排序------\r\n");Node *p1,*p2,*p3,*temp;if((temp=(Node*)malloc(sizeof(Node)))==NULL){printf("sort create error");}p1=head;//int i=0,j=0;//调试for(p2=p1->next;p2->next!=NULL;p2=p2->next){for(p3=p2->next;p2!=NULL;p3=p3->next){if(p2->elem>p3->elem){temp->elem=p3->elem;p3->elem=p2->elem;p2->elem=temp->elem;}
//          i++;
//            printf("i:%d\t",i);if(p3->next==NULL)break;}
//      j++;
//        printf("j:%d\t",j);}
}int main()
{Node *head;elemType temp;int arrayList[arraySize];createRandomArray(arrayList);head=createList(arraySize,arrayList);printf("排序前\r\n");displayList(head);sortList(head);printf("排序后\r\n");displayList(head);return 0;
}

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

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

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

  2. C语言选择排序(解析)

    C语言选择排序(解析) 运行结果:

  3. 堆排序算法c语言筛选法,【排序】排序算法之选择排序

    排序算法之选择排序 罗朝辉(http://www.cppblog.com/kesalin) 转载请注明出处 排序是数据处理中经常使用的一种重要运算,在计算机及其应用系统中,花费在排序上的时间在系统运行 ...

  4. C语言排序方法-----二元选择排序法

    上一篇文章C语言排序方法-----选择排序法中分析了选择排序法,这篇文章分析一下选择排序法的优化算法,二元选择排序法,在选择排序法中每次找一个最大或者最小的数据放到开始位置,那么为了提高效率可以每次比 ...

  5. C语言 选择排序算法

    C语言 选择排序算法 #include <stdio.h> #include <stdlib.h> //选择排序算法 void selectSort(int *arr,int ...

  6. c语言选择排序法程序设计,C语言选择排序算法及实例代码

    选择排序是排序算法的一种,这里以从小到大排序为例进行讲解. 基本思想及举例说明 选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置:然后,选出第二小的数,放在第二个位置:以此类推,直 ...

  7. c语言选择排序详解及代码,C语言选择排序算法及实例代码

    选择排序是排序算法的一种,这里以从小到大排序为例进行讲解. 基本思想及举例说明 选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置:然后,选出第二小的数,放在第二个位置:以此类推,直 ...

  8. C语言选择排序(函数版)

    C语言选择排序(函数版) 代码 //排序 #include<stdio.h> //数组大小为10,可根据需要自行修改 #define N 10//选择排序函数 void select_so ...

  9. C语言排序算法之简单交换法排序,直接选择排序,冒泡排序

    C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 1 /*简单交换法排序 2 根据序列中两个记录键值的比较结果来 ...

  10. C语言排序算法之选择排序

    文章目录 一.选择排序的概述 二.选择排序算法代码详解 (1)算法分析 (2)选择排序算法代码详解 三.总代码 一.选择排序的概述 选择排序(Selection sort)是一种简单直观的排序算法. ...

最新文章

  1. Open3d学习计划—高级篇 8(网格变形)
  2. SAP MM 采购信息记录里的Automatic Sourcing
  3. 【剑指offer-Java版】45圆圈中最后剩下的数字
  4. java多线程生产者与消费者问题_Java多线程详解之四:生产者消费者问题
  5. [转]卓越科技回应所谓的最牛,最受歧视的招聘
  6. 带有PostgreSQL的Docker Compose for Spring Boot应用程序
  7. php 预防循环发短信_php短信接口发送短信失败,罪魁祸首原来在这里
  8. 【BZOJ2330】【tyvj1785】【codevs2404】糖果,第一次的差分约束
  9. 【LuoguP5289】[十二省联考2019] 皮配
  10. adobe Director的一些快捷键(direct_Shortcut)
  11. 使用tuned/tuned-adm工具动态调优你的CentOS系统
  12. 做人10大心机:不能太单纯 适度伪装自己
  13. 在python中读取文件时如何去除行末的换行符以及在Windows与Linux中的区别
  14. python画布删除图形_Matplotlib在savefig之后从画布中清除旧图形
  15. 关于语义分割预测出来的图片全黑的解决办法
  16. 搭建C++开发图像算法的环境——利用C++调用Pytorch训练后模型
  17. C#特性——Description
  18. 为什么程序员的业余项目大多都死了?
  19. 实时渲染技术和像素流有哪些不同?
  20. java 字节码操作图和JAVAssist库图

热门文章

  1. 行为模式之Observer模式
  2. H264解码的学习笔记
  3. 题目1009:二叉搜索树
  4. postgresql 9.1 暂停 stream 后使用 rsync 异机同步文件
  5. Hibernate:SQL查询 addScalar()或addEntity()
  6. nginxtomca负载均衡
  7. NI Measurement Studio 打包问题的解决(原创)
  8. 图像形态学概要-腐蚀、膨胀、开运算、闭运算、形态学梯度(形态学边缘提取)、顶帽操作、黑帽操作
  9. find到带空格文件名用xargs处理的技巧
  10. leetcod算法题--找出星型图的中心节点