抽签问题改进算法
来源:互联网 发布:js实现css3过渡效果 编辑:程序博客网 时间:2024/04/28 13:39
#if 0 你的朋友提议玩一个游戏,将写有数字的n个纸片放入口袋中,你可以从口袋中抽取4次纸片,每次记下纸片上的数字后都将其放回口袋中,如果这四个数字的和为m, 就是你赢,否则就是你的朋友赢,你挑战了好几次,结果一次也没有赢,于是撕破口袋,取出所有的纸片,检查自己是否有赢的可能性。 请编写一个程序,判断当纸片上写的数字是K1,K2,K3,...,Kn 时,是否村在抽取四次和为m的情况,如果存在,输出Yes,若不存在,输出No。#endif#include <stdio.h>#include <stdlib.h>int Binary_search(int *Array ,int x,int n);int Solve(int *Array ,int n,int sum,int *BArray);int Partition_sort(int *Array,int low,int high);int QuickSort(int *Array,int low,int high);void Initial_list(int *Array,int n,int *BArray);void Initial_list(int *Array,int n,int *BArray){ int k=0; int i=0; int j=0; for(i=0;i<n;i++) for(j=0;j<n;j++) { BArray[k]=Array[i]+Array[j]; k++; }}int Partition_sort(int *BArray,int low,int high){ int location=*(BArray+low); while(low<high && *(BArray + high)>=location) { high--; } if(low<high) { *(BArray+low)=*(BArray+high); } while(low<high && *(BArray + high)<=location) { low++; } if(low<high) { *(BArray+high)=*(BArray+low); high--; } *(BArray+low)=location; return low;}int QuickSort(int *BArray,int low,int high){ int base=0; if(low<high) { base=Partition_sort(BArray,low,high); QuickSort(BArray,low, base-1); QuickSort(BArray,base+1,high); } return 0;}int Binary_search(int *BArray,int x,int n){ int mid=0; int begin=0; int end =n-1; int found=0; while(end-begin>=1) { mid=(begin + end )/2; if(x==*(BArray+mid)) return found=1; else if(x>*(BArray+mid)) begin=mid+1; else end=mid; } return found;}int Solve(int *Array ,int n,int sum,int *BArray){ int i=0,j=0; int m=0; int flag=0; for(i=0;i<n;i++) for(j=0;j<n;j++) { m=*(Array+i)+*(Array+j); if(Binary_search(BArray,sum-m,n*n)) { flag=1; break; } } return flag;}int main(){ int a[3]={1,3,5}; int n=3; int sum=10; int b[9]; Initial_list(a,n,b); QuickSort(b,0,n*n-1); if(1==Solve(a,n,sum,b)) printf("Yes"); else printf("No"); return 0;}
0 0
- 抽签问题改进算法
- 算法小题之抽签问题
- 暴力枚举算法的优化:抽签问题
- 抽签问题
- 抽签问题
- 抽签问题
- 抽签问题
- 抽签问题
- 算法题--抽签问题的思考与解决
- 算法起步(3)抽签问题—合二为一(上)
- 算法起步(3)抽签问题—合二为一(下)
- 程序设计--抽签问题
- 抽签问题优化
- 复杂的抽签问题
- 抽签
- 抽签
- 抽签
- 抽签
- python网络爬虫实战——实时抓取西刺免费代理ip
- Hibernate 之Lazy机制
- NUPT_移动应用开发 android简历app
- [概率]hdu5229
- 我为什么写博客?
- 抽签问题改进算法
- 三次握手,四次分手通俗解释。
- [LeetCode][Java] Balanced Binary Tree
- gec2440最简单的一个内核编译 linux2.6.30.4
- BIOS和CMOS的联系和区别
- 黑马程序员---java数组
- 【高质量代码】如何写出更高质量的C/C++代码(2):函数设计
- WP8 真机调试出现 指定的通信资源(端口)已由另一个应用程序使用 的解决方法
- 行存储和列存储--大数据应用选择