简易算法实现自由输入数字直方图
需积分: 8 121 浏览量
更新于2024-09-10
收藏 1KB TXT 举报
"该代码实现了一个简易的直方图打印程序,允许用户自由输入数字,通过冒泡排序对输入的数字进行排序,并以直方图的形式显示每个数字出现的频率。"
在计算机科学中,直方图是一种统计图表,用于表示数据分布的情况,通常用在数据分析、图像处理等领域。在这个简易的直方图程序中,主要涉及到两个关键函数:`bubbleSort` 和 `printFrequency`。
1. **冒泡排序(Bubble Sort)**:
冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,就像水中的气泡最终会上升到水面一样。在代码中,`bubbleSort` 函数接收一个整型数组 `list` 和其最后一个元素的索引 `last` 作为参数,实现升序排列。
2. **直方图打印(Print Frequency)**:
`printFrequency` 函数负责将排序后的数组转换成直方图。它遍历数组,检查相邻的元素是否相等,如果相等则累加计数器 `time`,表示当前数字的频率。当遇到不同的数字时,用 `time` 表示的频率和当前数字作为直方图的坐标,然后用星号(*)打印出相应数量的高度。这种方法直观地展示了每个数字在输入数据中出现的次数。
主函数 `main` 是整个程序的入口点,它首先分配内存存储用户输入的数字,然后提示用户输入数字范围和具体数值。在对输入的数字数组进行排序之后,调用 `printFrequency` 函数打印直方图。
此程序虽然简单,但它体现了基础的数据处理和可视化概念。对于初学者来说,这是一个很好的实践项目,可以帮助理解排序算法和如何用文本形式表示数据分布。同时,由于使用了动态内存分配,需要注意在程序结束前释放内存,避免内存泄漏。
点击了解资源详情
121 浏览量
点击了解资源详情
点击了解资源详情
116 浏览量
2022-09-14 上传
167 浏览量
114 浏览量
869 浏览量
jimgreen19957
- 粉丝: 0
- 资源: 1
最新资源
- readandwrite
- Probabilidade_e_Estatistica:Atividade eConteúdodaMatéria
- DLT和Tsai两步法标定相机的Matlab代码 里面附带验证程序
- java-20210325:Java
- minto
- Grid源代码.rar
- solve(f,a,b):如果可能,解f(x)= 0。-matlab开发
- WBD:Oracle Database 11g + GUI上的电话数据库项目
- springboot基础demo下载.zip
- 黑色闹钟3D模型
- HSKA-App:如果您在卡尔斯鲁厄应用科学大学学习INFB,MNIB,MKIB或INFM,则可以使用此应用程序获取有关成绩及更多信息的有用小部件。
- trigintpoly:函数 trigintpoly 使用 fft 来求三角插值多项式-matlab开发
- angular-gmohsw:用StackBlitz创建:high_voltage:
- Selenium网格拉胡尔
- MIPCMS内容管理系统 更新包 V2.1.2
- EventRepoRestApi:用Springboot和内存H2数据库编写的Rest API