作者提出了相当明确的实验目标:

归并排序

多线程

但作者给出的关于归并排序的说明却不是很到位,另外,讲解顺序也稍不合理。

作者应该首先将归并排序的算法核心提取出来,可以先做一个无多线程版本的伪代码或简单代码的说明;

随后再把这个无多线程的版本改进为多线程版本,这样让读者有更深刻的理解。

作者一开始的讲解重点在文件的操作上,这个有点舍本逐末。

针对设计的实验目标,文件操作的讲解根本无关紧要,我们甚至可以把需要排序的数组直接放在main函数中,这样让实验更加几种在排序算法和多线程上。

而作者可以把文件的读取作为实验的进阶目标,在完成了核心的内容后对程序进一步修改,从而实现从文件读取数组再进行多线程排序。

作者的核心代码有全局变量,这个对于程序设计有一定的坏处。

而且,作者给出的示例代码把所有的功能集中在一个c程序中,这样使实验目标的完成变的简单。

对于初学者来说这没什么,但对于有一定程序经验的人来说,这样的代码耦合性太高,导致无法复用。

当然,如果可能,也可以进一步设立如下的实验目标:把当前的代码拆分为耦合性较低的几个文件,每个文件完成不同的功能。

我个人根据作者的实验目标,把整个系统拆分为3个文件:

main文件——完成系统的测试功能

归并算法文件——完成归并算法,通过宏定义区分是否采用多线程

文件操作——完成简单的文件读取功能,获得目标数组

当然,多文件的链接和编译也需要相应的makefile来支持。

最终,还是感谢作者给出的实验,让我重新学习了归并排序算法,也稍微了解了C语言的多线程。

c语言线程按顺序,C语言实现多线程排序相关推荐

  1. java 控制线程的顺序_【Java多线程系列四】控制线程执行顺序

    packagecom.concurrent.test;importjava.util.concurrent.CountDownLatch;importorg.junit.Assert;importor ...

  2. c语言顺序表有效元素长度,用C语言描述的顺序表类型

    2.2.1 顺序表 用C语言描述的顺序表类型如下所示: // 存储结构 const int MAXLISTSIZE=80; // 预设的存储空间最大容量 typedef struct { ElemTy ...

  3. 数据结构源码笔记(C语言):顺序查找

    //实现顺序查找的算法 #include<stdio.h> #include<malloc.h> #include<malloc.h>#define MAXL 10 ...

  4. c语言实现顺序表源程序,C语言实现静态顺序表的实例详解

    C语言实现静态顺序表的实例详解 线性表 定义一张顺序表也就是在内存中开辟一段连续的存储空间,并给它一个名字进行标识.只有定义了一个顺序表,才能利用该顺序表存放数据元素,也才能对该顺序表进行各种操作. ...

  5. java链式结构_java语言实现队列顺序结构与链式结构

    本文主要向大家介绍了java语言实现队列顺序结构与链式结构,通过具体的内容向大家展示,希望对大家学习java语言有所帮助. 队列的顺序存储结构实现 public class Queue{ privat ...

  6. 打开c语言运行不了_C语言——菜鸟和大神的分水岭:内存、线程、进程

    作为一门古老的编程语言,C语言已经坚挺了好几十年了,初学者从C语言入门,大学将C语言视为基础课程.不管别人如何抨击,如何唱衰,C语言就是屹立不倒:Java.C#.Python.PHP.Perl 等都有 ...

  7. c语言线性顺序表,C语言程序——线性顺序表.doc

    C语言程序--线性顺序表.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文 ...

  8. GO语言-第二节-顺序编程

    目录 2.1变量 2.1.1变量声明 2.1.2 变量初始化 2.1.3 变量赋值 2.1.4 匿名变量 2.2 常量 2.2.1 字面常量 2.2.2 常量定义 2.2.3 预定义常量 2.2.4 ...

  9. 硬件描述语言VHDL之顺序语句基本使用介绍

    硬件描述语言VHDL之顺序语句 1. 顺序赋值语句 1.1 变量赋值语句 1.1.1 基本说明 1.1.2 使用举例 1.2 信号赋值语句 1.2.1 简单说明 1.2.2 使用举例 1.3 常量赋值 ...

最新文章

  1. python实现yolo目标检测_从零开始PyTorch项目:YOLO v3目标检测实现
  2. 来客推开源商城与你浅析:B2B2C多商户商城系统
  3. Java多线程- 线程池的基本使用和执行流程分析 - ThreadPoolExecutor
  4. 目标检测 - 如何在图片中标记Annotations中的坐标信息?
  5. Spring IOC 容器根据Bean 名称或者类型进行autowiring 自动依赖注入
  6. Wave-Share -无服务器,点对点,通过声音共享本地文件
  7. 浅谈PPM (Project Portfolio Management)
  8. 论文小综 | Neuro-Symbolic Reasoning in NLP
  9. Spark排错与优化
  10. python中33个保留字的含义_Python的保留字。这是什么意思?
  11. html5页面访问统计代码,两行代码搞定博客访问量统计
  12. PPAPI开发之路(四)PPAPI开发环境配置到第一个例子整理(详细总结整理,之前遇到的一些问题解决)
  13. UEFI 双系统+双硬盘安装
  14. MSDC 4.3 接口规范(17)
  15. Redis---Redis三种常用数据结构
  16. 面试题: !=!=未看12 略多 sql语句练习 非常 有用
  17. 头文件到底是干啥用的
  18. Android离线文字转语音(TTS)原生实现
  19. 智能化变电站辅助系统与生产系统结合的未来发展方向
  20. 微前端qiankun 问题

热门文章

  1. 异地数据库同步解决方案
  2. php 读取word文档_如何使用PHP制作Microsoft Word文档
  3. 小区物业报修管理系统JAVA Mysql
  4. 【ArcGIS微课1000例】0030:ArcGIS利用MXD doctor工具分析并修复mxd地图文档
  5. 【LIDC-IDRI】 CT 肺结节 XML 标记特征良恶性标签PKL转储(一)
  6. cpmp(compulsory)
  7. 还敢白嫖吗?利用插件破解百度文库下载文档,被判赔200万元!还不收手吗?
  8. 三节锂电池充电管理芯片,IC电路图,BOM物料表
  9. 【自然语言处理与文本分析】文本特征提取方法总结。关键词提取方法。公认效果较好的IDF,RCF。
  10. 迷宫算法之递归回溯python实现