请帮小弟我看一下怎么用python重新编写这个c程序
发布时间:2011-06-29 19:58:53 文章来源:www.iduyao.cn 采编人员:星星草
请帮我看一下如何用python重新编写这个c程序
这个是c语言程序:
#include <limits.h>
void f_and_s(int [], int, int, int *, int *);
void first_second(int x[], int n, int *first, int *second)
{
f_and_s(x, 0, n-1, first, second);
}
void f_and_s(int x[], int left, int right, int *f, int *s)
{
int mid;
int F1, F2; /* returned smallest items */
int S1, S2; /* returned second smallest */
if (left > right) /* range empty ? */
*f = *s = INT_MAX; /* YES, return INT_MAX */
else if (left == right) /* exactly one item ? */
*f = x[left], *s = INT_MAX; /* return it and inf*/
else {
mid = (left + right)/2; /* now cut from middle */
f_and_s(x, left, mid, &F1, &S1); /* left */
f_and_s(x, mid+1, right, &F2, &S2); /* right */
if (F1 < F2) /* pick 1st and 2nd items. */
*f = F1, *s = (S1 < F2) ? S1 : F2;
else
*f = F2, *s = (S2 < F1) ? S2 : F1;
}
}
/* ------------------------------------------------------ */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAXSIZE 100
int main(void)
{
int x[MAXSIZE];
int n, first, second;
int i;
char line[100];
printf("\nRecursive First-Second Elements");
printf("\n===============================");
printf("\n\nHow many elements (at least 2) --> ");
gets(line);
n = atoi(line);
srand((unsigned) clock());
printf("\nRandomly Generated Data :\n");
for (i = 0; i < n; i++) {
x[i] = rand();
if (i % 10 == 0) printf("\n");
printf("%6d", x[i]);
}
first_second(x, n, &first, &second);
printf("\n\nThe Smallest Element --------->%6d", first);
printf( "\nThe Second Smallest Element -->%6d", second);
getchar();
return 0;
}
///
我用python重写了一下
#____________________________________#
import random
first=[]
second=[]
INT_MAX=2147483647
MAXSIZE=100
x=[]
#____________________________________#
def f_and_s(x,left,right,mjfirst,mjsecond):
F1=F2=S1=S2=[]
F1+=[""]
F2+=[""]
S1+=[""]
S2+=[""]
if(left>right):
mjfirst[0]=INT_MAX
mjsecond[0]=INT_MAX
elif(left==right):
print "ssss",mjfirst[0]
mjfirst[0]=x[left]
mjsecond[0]=INT_MAX
print "mjken ",mjfirst[0],id(mjfirst[0])
elif(left<right):
mid=(left+right)/2
print mid
f_and_s(x,left,mid,F1,S1)
f_and_s(x,mid+1,right,F2,S2)
if(F1[0]<F2[0]):
mjfirst[0]=F1[0]
if(S1[0]<F2[0]):
mjsecond[0]=S1[0]
else:
mjsecond[0]=F2[0]
else:
mjfirst[0]=F2[0]
if(S2[0]<F1[0]):
mjsecond[0]=S2[0]
else:
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
能不能找到支持 python 2.6 2.7 3.x 版本的 mod_python 呢?
http://archive.apache.org/dist/httpd/modpython/win/3.3.1/
我在...
-
windows下安装apache + python + django + mod_wsgi.so
对应版本:
Apache:Apache HTTP Server (httpd) 2.2.19
Python:Python2.7
Dja...
-
手工执行python3程序没问题,放在cron里面就不执行有中文的代码,高手帮忙啊。急!
先介绍下基本情况
环境: redhat Python3.2
目的:定...
-
PYTHON用什么编辑器?
是用自带的IDLE不?
------解决方案--------------------
看下国外的Python用户都用什么吧:
http://jobs.pyth...
-
为什么在python25中输入下面的代码是错误的??求大神!
if 1 < 0:
print '”x” must be atleast 0!'
------解决方案-----...
-
pyhthon zipfile获取压缩文件列表后怎样打开其中某个文件?
如题。似乎ZipFile没有open操作..
zCmfile = zipfile.ZipFile(target...
-
本人菜鸟一个,哪位大神帮我解释一下下面两段
import sys
print >> sys.stderr, 'Fatal error: invalid input!'
import sys
...
-
老王的python学习网站!推荐!
http://blog.csdn.net/hendom/article/details/7173207
很不错的python学习网站。
http://www.cnpyt...
-
myeclipse里导入python项目
初学python,我在myeclipse里导入已有项目,选择路径后为什么没出现该项目,这项目不应该有问题啊,我用的是m...
-
安装PyQt的问题?
今天在ubuntu下安装了PyQt-x11-gpl-4.9,但是我按照《getting started with PyQt》上的一个例子
import sys
from ...