Python和C#基本算法实现对比

最近在学习python,很多入门的例子又写了一遍,基本上是C#和Python都写了一遍,对比发现语言真是相通啊,只是语法不同而已。

python开发也是用的VS,很好用,特别是代码段运行,选中一段python代码,Ctrl+E+E执行结果就出来了,跟装了TestDriven写C#也差不多,很不错!!!2016-03-23 22:31:21

python3.4的字符串格式化我发现跟C#一样的用法,然后就没有然后了,字符串不管什么都是这么写"{0}+{1}={2}".format(i,j,k),嘿嘿嘿......

join比较坑,必须是字符串数组

python程序里面有中文的话,要在文件开始标注编码为gbk,# coding=gbk

下面是基本基本算法案例:

1.斐波那契数

python

 1 def fib(n):
 2     if(n == 1) or n == 2:
 3         return 1
 4     return fib(n - 1) + fib(n - 2)
 5 print(fib(10))
 6
 7
 8 def fib(n):
 9     if n == 1:
10         return [1]
11     if n == 2:
12         return [1, 1]
13     fibs = [1, 1]
14     for i in range(2, n):
15         fibs.append(fibs[-1] + fibs[-2])
16     return fibs
17 print(fib(10)) 

输出结果:55,[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

C#

 1 public int Fib(int n)
 2 {
 3     if (n <= 0)
 4     {
 5         return n;
 6     }
 7     if (n == 1 || n == 2)
 8     {
 9         return 1;
10     }
11     return Fib(n - 1) + Fib(n - 2);
12 }
13 public string FibArr(int n)
14 {
15     if (n <= 0)
16     {
17         return n.ToString();
18     }
19     if (n == 1 || n == 2)
20     {
21         return "1,1";
22     }
23
24     List<int> fibList = new List<int>() { 1, 1 };
25     for (int i = 2; i < n; i++)
26     {
27         fibList.Add(fibList[i - 1] + fibList[i - 2]);
28     }
29     return string.Join(",", fibList);
30 }
31
32 void Test()
33 {
34     Console.WriteLine(Fib(10));
35     Console.WriteLine(FibArr(10));
36 }

输出结果:

55
1,1,2,3,5,8,13,21,34,55

2.水仙数

python

1  for x in range(100,1000):
2     i = x / 100
3      j = x % 100 / 10
4      k = x % 10
5      if(i ** 3 + j ** 3 + k ** 3 == x):
6          print(x)

C#

 1 for (int i = 100; i < 1000; i++)
 2 {
 3     int h = i / 100;
 4     int t = i % 100 / 10;
 5     int s = i % 10;
 6     if (Math.Pow(h, 3) + Math.Pow(t, 3) + Math.Pow(s, 3) == i)
 7     {
 8         Console.WriteLine(i);
 9     }
10 }

3.因式分解

Python

例如:12=2*2*3

 1 # coding=gbk
 2
 3 n = int(input("输入数字:"))
 4 print("n={0}".format(n))
 5 s = ""
 6 for x in range(2,n + 1):
 7    while x != n:
 8        if(n % x == 0):
 9            s+="{0}".format(x)
10            s+="*"
11            n = n / x
12        else:
13             break
14 s+="{0}".format(int(n))
15 print(s)

4.求素数

python

 1 count = 0
 2 pmarr = []
 3 ispm = True
 4
 5 from math import sqrt
 6 for x in range(101,201):
 7     k = int(sqrt(x))
 8     for i in range(2,k + 1):
 9         if x % i == 0:
10             ispm = False
11             break
12         ispm = True
13     if(ispm):
14         pmarr.append("%d" % x)
15         count+=1
16 print(pmarr)
17 print(count)

C#

 1 bool ispm = true;
 2 int count = 0;
 3 for (int i = 100; i < 200; i++)
 4 {
 5     int j = (int)Math.Sqrt(i) + 1;
 6     for (int k = 2; k < j; k++)
 7     {
 8         if (i % k == 0)
 9         {
10             ispm = false;
11             break;
12         }
13         ispm = true;
14     }
15     if (ispm)
16     {
17         Console.Write("{0} ", i);
18         count++;
19     }
20 }
21 Console.WriteLine("总数:{0}", count);

python执行效率或者语言特性可能不如C#,但动态语言特征及跨平台方面确实比C#好太多。

在爬虫方面的开发效率确实很快,目前正在看python爬虫算法,准备写一版C#出来

学习做笔记的习惯已经丢好久了,希望以后能慢慢的拾起来吧

时间: 2024-12-10 09:43:42

Python和C#基本算法实现对比的相关文章

Python实现各种排序算法的代码示例总结

Python实现各种排序算法的代码示例总结 作者:Donald Knuth 字体:[增加 减小] 类型:转载 时间:2015-12-11我要评论 这篇文章主要介绍了Python实现各种排序算法的代码示例总结,其实Python是非常好的算法入门学习时的配套高级语言,需要的朋友可以参考下 在Python实践中,我们往往遇到排序问题,比如在对搜索结果打分的排序(没有排序就没有Google等搜索引擎的存在),当然,这样的例子数不胜数.<数据结构>也会花大量篇幅讲解排序.之前一段时间,由于需要,我复习了

【机器学习算法-python实现】采样算法的简单实现

1.背景 采样算法是机器学习中比较常用,也比较容易实现的(出去分层采样).常用的采样算法有以下几种(来自百度知道): 一.单纯随机抽样(simple random sampling) 将调查总体全部观察单位编号,再用抽签法或随机数字表随机抽取部分观察单位组成样本. 优点:操作简单,均数.率及相应的标准误计算简单. 缺点:总体较大时,难以一一编号. 二.系统抽样(systematic sampling) 又称机械抽样.等距抽样,即先将总体的观察单位按某一顺序号分成n个部分,再从第一部分随机抽取第k

算法时间复杂度对比

题目:求1-1/x+1/x^2-1/x^3+......+1/(-x)^(n-1) 算法一: #include<stdio.h> #include<sys/timeb.h> void main(){ timeb t1,t2; long t; double x,sum=1,sum1; int i,j,n; printf("请输入x n:"); scanf("%lf%d",&x,&n); ftime(&t1); for (

常用的SQL分页算法及对比

SQL Server 2005引入的新方法. 1 SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY keyField DESC) AS rowNum, * FROM tableName) AS t WHERE rowNum > start[比如:90] AND rowNum <= end[比如:100]=>[返回91-100] 2 3 SELECT top (PAGESIZE[比如:10]) FROM (SELECT ROW_NUMBER(

Python GUI编程各种实现的对比

Python GUI编程各种实现的对比 从 Python 语言的诞生之日起,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI 工具集,使得 Python 也可以在图形界面编程领域当中大展身手,由于 Python 的流行,许多应用程序都是由 Python 结合那些优秀的 GUI 工具集编写的.下面分别介绍 Python GUI 编程的各种实现,下面的许多内容都是来自维基百科(文章后面列出了参考),这里就当做是一个没有技术色彩的整合吧. 1.Tkinter 简单介绍: 是

利用Python实现 队列的算法

以下内容都是来自"悟空"大神的讲解,听他的视频课,利用Python实现堆栈的算法,自己做了一些小总结,可能会存在自己理解的一些误区, 1.栈的实现 队列的特征是先进先出,同我们生活中的队列具有相同的特性:先排队的先办事.队列的应用场景非常多,例如消息通信.多进程间的协同.多线程间的协同等. 在算法前,我们需要先知道3个值  1.节点(节点作用是 进行一个指针(假设的)一个指向  2.就是现在这个位置上的元素的值)  2.还需要知道一个头,一个尾,就如上面两个一个head,就对应下面的代

Python 生成账号密码算法

有个需求,需要伪造跟用户行为非常类似的账号密码,而且需要一个阀值控制伪造的数量. 在这需求上,还有一个就是需要控制生成的比率.跳出率不能过高或者太低. 对此就随手用python写了一个,bug不知道有木有,没有测,具体有兴趣可以去改改. #coding:utf-8 import random class create_data: global zimu_xx,zimu_dx,number,teshu # 生成26个英文字母,大小写 zimu_xx=[chr(i) for i in range(9

如何用Python实现常见机器学习算法-1

最近在GitHub上学习了有关python实现常见机器学习算法 目录 一.线性回归 1.代价函数 2.梯度下降算法 3.均值归一化 4.最终运行结果 5.使用scikit-learn库中的线性模型实现 二.逻辑回归 1.代价函数 2.梯度 3.正则化 4.S型函数 5.映射为多项式 6.使用的优化方法 7.运行结果 8.使用scikit-learn库中的逻辑回归模型实现 逻辑回归_手写数字识别_OneVsAll 1.随机显示100个数字 2.OneVsAll 3.手写数字识别 4.预测 5.运行

# 深入浅出爬虫之道: Python、Golang与GraphQuery的对比

深入浅出爬虫之道: Python.Golang与GraphQuery的对比 本文将分别使用 Python ,Golang 以及 GraphQuery 来解析某网站的 素材详情页面 ,这个页面的特色是具有清晰的数据结构,但是DOM结构不够规范,无法通过单独的选择器定位页面元素,对页面的解析造成了一些曲折.通过这个页面的解析过程,深入浅出的了解爬虫的解析思想与这些语言之间的异同. 深入浅出爬虫之道: Python.Golang与GraphQuery的对比 一.前言 1. 语义化的DOM结构 2. 稳