国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

5大開發語言同時計算素數,誰快?

Ashin / 677人閱讀

摘要:本文中的種開發語言為以下排名不分先后,只是提筆寫的本文計算指定一個數,我們計算一下從到中的素數,并輸出。

本文中的5種開發語言為:(以下排名不分先后,只是提筆寫的)

  • C#
  • Python
  • C++
  • Go
  • Java

本文計算指定一個數targetNum,我們計算一下從1targetNum中的素數,并輸出。

1. 本文在同一臺虛擬機中運行計算

2. 各語言實現

2.1. C#語言

2.1.1. 開發環境

  1. VS2019
  2. .Net5.0

2.1.2. 代碼

using System;using System.Diagnostics;namespace CSharpPrimeNumber{    class Program    {        static void Main(string[] args)        {            PrimeNumber(100);            PrimeNumber(200);            PrimeNumber(500);            PrimeNumber(1000);            PrimeNumber(2000);            PrimeNumber(5000);            PrimeNumber(10000);            PrimeNumber(50000);            PrimeNumber(100000);            Console.ReadKey();        }        private static void PrimeNumber(int targetNum)        {            Stopwatch sw = new Stopwatch();            sw.Start();            for (int i = 2; i < targetNum; i++)            {                int halfNum = i / 2;                bool isPrimeNumber = true;                for (int j = 2; j < halfNum; j++)                {                    if (i % j == 0)                    {                        isPrimeNumber = false;                        break;                    }                }                if (isPrimeNumber)                {                    //Console.WriteLine($"數{i}是素數...");                }            }            sw.Stop();            TimeSpan ts2 = sw.Elapsed;            Console.WriteLine($"{targetNum}:素數計算總共花費{ts2.TotalSeconds}s.");        }    }}

2.1.2. 執行結果

以下編譯為Release并點擊可執行程序運行

2.2 Python

2.2.1. 開發環境

  1. VSCode
  2. python 3.9.7

2.2.2. 代碼

from time import *def primeNum(targetNum):    begin_time = time()    for i in range(2,targetNum):        halfNum=i/2        isPrimeNumber = True        j=2        while j <= halfNum:            if i%j==0:                isPrimeNumber=False                break            j=j+1        # if isPrimeNumber:        #     # print(str(i)+"數是素數")        end_time = time()    run_time = end_time-begin_time    print ("{}:素數計算總共耗時:{}s".format(targetNum,run_time)) primeNum(100)primeNum(200)primeNum(500)primeNum(1000)primeNum(2000)primeNum(5000)primeNum(10000)primeNum(50000)primeNum(100000)

2.2.2. 執行結果

以下使用命令行執行

2.3. C++

2.3.1. 開發環境

  1. VS2019

2.3.2. 代碼

using namespace std;void primeNum(int targetNum){    clock_t startTime = clock();    int numCount = 0;    for (int i = 2; i < targetNum; i++)    {        int halfNum = i / 2;        bool isPrimeNumber = true;        for (int j = 2; j <= halfNum; j++)        {            if (i % j == 0)            {                isPrimeNumber = false;                break;            }        }        if (isPrimeNumber)        {            numCount++;            //cout << "數" << i << "是素數..." << endl;        }    }    clock_t endTime = clock();    cout << targetNum << ":素數計算總共花費" << endTime - startTime<<" ms ,素數個數為:"<< numCount << endl;}int main(){	primeNum(100);	primeNum(200);	primeNum(500);	primeNum(1000);	primeNum(2000);	primeNum(5000);	primeNum(10000);	primeNum(50000);    primeNum(100000);}

2.3.3. 執行結果

2.4. Go

2.4.1. 開發環境

  1. go version go1.17.2 windows/amd64
  2. VS Code

2.4.2. 代碼

package mainimport(	"fmt"	"time")func main()  {	primeNum(100)	primeNum(200)	primeNum(500)	primeNum(1000)	primeNum(2000)	primeNum(5000)	primeNum(10000)	primeNum(50000)	primeNum(100000)}func primeNum(targetNum int){	startTime := time.Now()	var halfNum int	var isPrimeNumber bool	var numCount int	halfNum=targetNum	numCount=0	for i := 2; i <= targetNum; i++ {        halfNum=i/2		isPrimeNumber = true		for j := 2; j <= halfNum; j++ {			if i%j ==0{				isPrimeNumber=false				break			}		}		        if isPrimeNumber{			numCount=numCount+1            // fmt.Printf("%v數是素數/n",i)		}	}		elapsedTime := time.Since(startTime) / time.Millisecond 	fmt.Printf("%v:素數計算總共耗時:%d ms ,素數個數為:%v/n",targetNum, elapsedTime,numCount)}

2.4.3. 執行結果

2.5. Java

2.5.1. 開發環境

  1. Java8
  2. Idea

2.5.2. 代碼

    public static void main(String[] args) {        PrimeNumber(100);        PrimeNumber(200);        PrimeNumber(500);        PrimeNumber(1000);        PrimeNumber(2000);        PrimeNumber(5000);        PrimeNumber(10000);        PrimeNumber(50000);        PrimeNumber(100000);    }    private static void PrimeNumber(int targetNum)    {        long startTime=System.currentTimeMillis();   //獲取開始時間        int numCount = 0;        for (int i = 2; i < targetNum; i++)        {            int halfNum = i / 2;            boolean isPrimeNumber = true;            for (int j = 2; j <= halfNum; j++)            {                if (i % j == 0)                {                    isPrimeNumber = false;                    break;                }            }            if (isPrimeNumber)            {                numCount++;//                System.out.println(String.format("數%s是素數...",i));            }        }        //函數主體代碼        long endTime=System.currentTimeMillis(); //獲取結束時間        System.out.println(String.format("%s:素數計算總共花費%s ms,素數個數為:%s",targetNum,(endTime-startTime),numCount));    }}

2.5.3. 執行結果

3. 效率折線

  1. C++ 最快
  2. Java和C#在這個上沒有太大的區別(沒有考慮預熱
  3. GO表現并沒有很快(沒有使用協程)
  4. Python最慢

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/122563.html

相關文章

  • PHP 性能分析與實驗——性能的宏觀分析

    摘要:本文就改變性能分析的角度,并通過實例來分析出的性能方面需要注意和改進的點。如下是作為解釋性語言的執行過程。這里分別啟用和做實驗。 此前,閱讀過了很多關于 PHP 性能分析的文章,不過寫的都是一條一條的規則,而且,這些規則并沒有上下文,也沒有明確的實驗來體現出這些規則的優勢,同時討論的也側重于一些語法要點。本文就改變PHP 性能分析的角度,并通過實例來分析出 PHP 的性能方面需要注意和...

    Ilikewhite 評論0 收藏0
  • PHP 性能分析與實驗——性能的宏觀分析

    摘要:本文就改變性能分析的角度,并通過實例來分析出的性能方面需要注意和改進的點。如下是作為解釋性語言的執行過程。這里分別啟用和做實驗。 此前,閱讀過了很多關于 PHP 性能分析的文章,不過寫的都是一條一條的規則,而且,這些規則并沒有上下文,也沒有明確的實驗來體現出這些規則的優勢,同時討論的也側重于一些語法要點。本文就改變PHP 性能分析的角度,并通過實例來分析出 PHP 的性能方面需要注意和...

    ZHAO_ 評論0 收藏0
  • 四·C語言之·函數全方位理解

    摘要:我們在開發的過程中每個程序員都可能用的到,為了支持可移植性和提高程序的效率,所以語言的基礎庫中提供了一系列類似的庫函數,方便程序員進行軟件開發。形式參數當函數調用完成之后就自動銷毀了。因此形式參數只在函數中有效。 ?寫在前面 ?博客主頁:kikoking的江湖背景?歡迎關注?點贊?收藏...

    legendaryedu 評論0 收藏0
  • 《十萬字Java入門練習100例》1-10例——紙上得來終覺淺,絕知此事要躬行

    摘要:代碼實現在控制臺打印總結本篇文章帶大家搭好環境,并體驗了控制臺打印。輸出結果總結熟練掌握取余和整除運算,大有作用。終止本次循環,繼續執行下一次循環。 ?本文收錄...

    keithyau 評論0 收藏0
  • C語言第三期(1萬字函數-數組-操作符詳解)

    摘要:形式參數當函數調用完成之后就自動銷毀了。函數調用傳值調用函數的形參和實參分別占有不同內存塊,對形參的修改不會影響實參。函數的聲明一般出現在函數的使用之前。它其實就數組訪問的操作符。 ...

    Jeff 評論0 收藏0

發表評論

0條評論

Ashin

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<