c语言线程按顺序,C语言实现多线程排序
作者提出了相当明确的实验目标:
归并排序
多线程
但作者给出的关于归并排序的说明却不是很到位,另外,讲解顺序也稍不合理。
作者应该首先将归并排序的算法核心提取出来,可以先做一个无多线程版本的伪代码或简单代码的说明;
随后再把这个无多线程的版本改进为多线程版本,这样让读者有更深刻的理解。
作者一开始的讲解重点在文件的操作上,这个有点舍本逐末。
针对设计的实验目标,文件操作的讲解根本无关紧要,我们甚至可以把需要排序的数组直接放在main函数中,这样让实验更加几种在排序算法和多线程上。
而作者可以把文件的读取作为实验的进阶目标,在完成了核心的内容后对程序进一步修改,从而实现从文件读取数组再进行多线程排序。
作者的核心代码有全局变量,这个对于程序设计有一定的坏处。
而且,作者给出的示例代码把所有的功能集中在一个c程序中,这样使实验目标的完成变的简单。
对于初学者来说这没什么,但对于有一定程序经验的人来说,这样的代码耦合性太高,导致无法复用。
当然,如果可能,也可以进一步设立如下的实验目标:把当前的代码拆分为耦合性较低的几个文件,每个文件完成不同的功能。
我个人根据作者的实验目标,把整个系统拆分为3个文件:
main文件——完成系统的测试功能
归并算法文件——完成归并算法,通过宏定义区分是否采用多线程
文件操作——完成简单的文件读取功能,获得目标数组
当然,多文件的链接和编译也需要相应的makefile来支持。
最终,还是感谢作者给出的实验,让我重新学习了归并排序算法,也稍微了解了C语言的多线程。
c语言线程按顺序,C语言实现多线程排序相关推荐
- java 控制线程的顺序_【Java多线程系列四】控制线程执行顺序
packagecom.concurrent.test;importjava.util.concurrent.CountDownLatch;importorg.junit.Assert;importor ...
- c语言顺序表有效元素长度,用C语言描述的顺序表类型
2.2.1 顺序表 用C语言描述的顺序表类型如下所示: // 存储结构 const int MAXLISTSIZE=80; // 预设的存储空间最大容量 typedef struct { ElemTy ...
- 数据结构源码笔记(C语言):顺序查找
//实现顺序查找的算法 #include<stdio.h> #include<malloc.h> #include<malloc.h>#define MAXL 10 ...
- c语言实现顺序表源程序,C语言实现静态顺序表的实例详解
C语言实现静态顺序表的实例详解 线性表 定义一张顺序表也就是在内存中开辟一段连续的存储空间,并给它一个名字进行标识.只有定义了一个顺序表,才能利用该顺序表存放数据元素,也才能对该顺序表进行各种操作. ...
- java链式结构_java语言实现队列顺序结构与链式结构
本文主要向大家介绍了java语言实现队列顺序结构与链式结构,通过具体的内容向大家展示,希望对大家学习java语言有所帮助. 队列的顺序存储结构实现 public class Queue{ privat ...
- 打开c语言运行不了_C语言——菜鸟和大神的分水岭:内存、线程、进程
作为一门古老的编程语言,C语言已经坚挺了好几十年了,初学者从C语言入门,大学将C语言视为基础课程.不管别人如何抨击,如何唱衰,C语言就是屹立不倒:Java.C#.Python.PHP.Perl 等都有 ...
- c语言线性顺序表,C语言程序——线性顺序表.doc
C语言程序--线性顺序表.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文 ...
- 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 ...
- 硬件描述语言VHDL之顺序语句基本使用介绍
硬件描述语言VHDL之顺序语句 1. 顺序赋值语句 1.1 变量赋值语句 1.1.1 基本说明 1.1.2 使用举例 1.2 信号赋值语句 1.2.1 简单说明 1.2.2 使用举例 1.3 常量赋值 ...
最新文章
- python实现yolo目标检测_从零开始PyTorch项目:YOLO v3目标检测实现
- 来客推开源商城与你浅析:B2B2C多商户商城系统
- Java多线程- 线程池的基本使用和执行流程分析 - ThreadPoolExecutor
- 目标检测 - 如何在图片中标记Annotations中的坐标信息?
- Spring IOC 容器根据Bean 名称或者类型进行autowiring 自动依赖注入
- Wave-Share -无服务器,点对点,通过声音共享本地文件
- 浅谈PPM (Project Portfolio Management)
- 论文小综 | Neuro-Symbolic Reasoning in NLP
- Spark排错与优化
- python中33个保留字的含义_Python的保留字。这是什么意思?
- html5页面访问统计代码,两行代码搞定博客访问量统计
- PPAPI开发之路(四)PPAPI开发环境配置到第一个例子整理(详细总结整理,之前遇到的一些问题解决)
- UEFI 双系统+双硬盘安装
- MSDC 4.3 接口规范(17)
- Redis---Redis三种常用数据结构
- 面试题: !=!=未看12 略多 sql语句练习 非常 有用
- 头文件到底是干啥用的
- Android离线文字转语音(TTS)原生实现
- 智能化变电站辅助系统与生产系统结合的未来发展方向
- 微前端qiankun 问题
热门文章
- 异地数据库同步解决方案
- php 读取word文档_如何使用PHP制作Microsoft Word文档
- 小区物业报修管理系统JAVA Mysql
- 【ArcGIS微课1000例】0030:ArcGIS利用MXD doctor工具分析并修复mxd地图文档
- 【LIDC-IDRI】 CT 肺结节 XML 标记特征良恶性标签PKL转储(一)
- cpmp(compulsory)
- 还敢白嫖吗?利用插件破解百度文库下载文档,被判赔200万元!还不收手吗?
- 三节锂电池充电管理芯片,IC电路图,BOM物料表
- 【自然语言处理与文本分析】文本特征提取方法总结。关键词提取方法。公认效果较好的IDF,RCF。
- 迷宫算法之递归回溯python实现