趣味算法-寻找假硬币
来源:互联网 发布:c语言字符串排序 编辑:程序博客网 时间:2024/09/21 09:06
趣味算法-寻找假硬币
8枚硬币,一枚假的,假的比真的少轻,通过程序寻找假硬币。
采用分治算法:
1) 硬币分2组,找出比较轻的一组。
2) 再把稍轻的一组继续分为2组,再找出稍轻的一组。
3) 直至比较2个硬币为止。
#include <stdio.h>int checkcoin(int arrCoin[], int nStart, int nEnd){ int nMid = (nStart+nEnd)/2; int nResult; if (nStart == nEnd) { return -1; } if (nEnd - nStart == 1) { if (arrCoin[nStart] < arrCoin[nEnd]) { return nStart; } else if (arrCoin[nStart] > arrCoin[nEnd]) { return nEnd; } } else { nResult = checkcoin(arrCoin, nStart, nMid); if (nResult != -1) return nResult; nResult = checkcoin(arrCoin, nMid, nEnd); if (nResult != -1) return nResult; } return -1;}int main(){ int arrTest[8] = {3,3,3,3,3,3,1,3}; int nResult = 0; nResult = checkcoin(arrTest, 0, 7); printf("Result = %d \n", nResult); scanf("%d", &nResult); return 0;}
算法复杂度
O(N) = Log2(N)
- 趣味算法-寻找假硬币
- 分治算法寻找硬币
- 分治算法——假硬币寻找,硬币找零,众数问题
- 硬币趣味题
- 趣味算法
- 趣味算法之趣味素数
- 趣味算法之趣味分数
- 寻找假银币算法
- 趣味数学算法实现
- 算法的趣味题
- 趣味算法-约瑟夫环
- 趣味算法-括号匹配
- 趣味算法-完全数
- 趣味算法-亲密数
- 趣味算法-水仙花数
- 趣味算法-自守数
- 趣味算法-回文数
- 趣味算法-Hanoi
- 求两个数的和(不用+-*/)
- 不同的窗口之间传递数据-OC内存管理
- 详解Objective-C中静态变量使用方法
- 直接启动VSFTP 服务
- time.h
- 趣味算法-寻找假硬币
- 趣味算法-三色旗
- 嵌入式系统文件系统比较 jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs
- 输入字符串时输入空格
- objective-C语法系列之---访问权限
- 很有意思的C - 1
- sacnf 输入格式相关
- 编码的一些问题
- python整理二十五——谈谈浅拷贝与深拷贝