算法习题---线性表之控制变量个数获取数据最小值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了算法习题---线性表之控制变量个数获取数据最小值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含935字,纯文字阅读大概需要2分钟。
内容图文
![算法习题---线性表之控制变量个数获取数据最小值](/upload/InfoBanner/zyjiaocheng/1232/868c6ee41b3e40e78bb24bd4ec70945b.jpg)
一:问题
有N个个位正整数存放在int整型数组A中,N定义为已经定义的常量N<=9,数组长度为N,另给一个int型变量i,要求只用上述变量,写一个算法,找出N个整数中的最小者,并且要求不能破坏数组数据。
二:解题思路
i作为变量,这个变量的百位用于储存最小值地址,十位用来储存最小值,个位用于当前指向的地址。
三:算法实现
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #define N 9 //i的百位存储最小位置下标,十位存储最小值,个位存储当前索引下标void findMin(int a[]) //使用函数的话可以按照指针来做,不过太取巧了{ int i = a[0] * 10; //0*100+a[0]*10+0 百位存储最小位置下标,十位存储最小值,个位存储当前索引下标while (i%10<N) //i%10就是当前下标 { if (a[i % 10]<(i % 100 / 10)) //获取i的十位数字来比较 { //更新i值的百位数字和十位数字 i = (i % 10) * 100 + a[i % 10] * 10 + i % 10; } i++; //当前位置进一格 } printf("min value:%d in index:%d", i % 100 / 10, i / 100); } int main() { int a[N] = { 9, 8, 7, 2, 1, 3, 4, 5, 4}; findMin(a); system("pause"); return0; }
四:注意
该算法的前提是:有N个个位正整数存放在int整型数组A中,N定义为已经定义的常量N<=9(也就是说数组长度不能超过9,因为我们i数据只用了一位来存储下标和数值)
思考:可以扩展i的下标和值占位数来存储更长的数据,或者只需要我们获取最小下标,这样会更加容易扩展
原文:https://www.cnblogs.com/ssyfj/p/9567479.html
内容总结
以上是互联网集市为您收集整理的算法习题---线性表之控制变量个数获取数据最小值全部内容,希望文章能够帮你解决算法习题---线性表之控制变量个数获取数据最小值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。