论C++和Python哪个更优越(一)

一.前言

C++,C语言的2.0版本,开发语言中的一把利剑

Python,多种开发语言的结晶,代码界的后起之秀

----------------------------------------------------------------------

它们两个到底谁更强?今天我将从多个角度给你分析.

TIPS:以下内容仅个人观点,可能会不全面,不喜勿喷.

速度 

速度,是判定一个开发语言很不错的标准

1.C++ 

我们在这里用一下上海市计算机学会竞赛平台(IAI)的题

救援争先

内存限制: 256 Mb

时间限制: 1000 ms

题目描述

某地出现了灾害,各地派出了 n 只救援队。这些救援队是在同一天出发的,但出发时间不一样,路程也有长有短,所以达到时间有先有后。

给定每个队伍的出发时间,以及每只队伍的路程,请按照到达时间为这些队伍排序,如果多只队伍的到达时间正好相等,则出发时间靠前的队伍排在前列,如果出发时间仍然相等,则编号较小的队伍排在前列。

输入格式

第一行:单个整数 n,表示救援队数量。
第二行到第 n+1 行:在第 i+1行,有两个时间,表示第 i 只救援队的出发时间和路程,数据格式均为 h:m

  • h 表示小时,在 00 到 23 之间;
  • m 表示分钟,在 00 到 59 之间。

输出格式

共 n 行,每行一个整数,按救援队到达的先后顺序输出它们的编号。

数据范围

1≤n≤1000

代码:

#include 
#include 
#include 
using namespace std;
int n,sh,sm,lh,lm;
struct Boat{
	int begin,end,index;
};
Boat boats[1001]; 
bool cmp(Boat b1,Boat b2){
	if(b1.end==b2.end){
		if(b1.begin==b2.begin){
			return b1.index>n;
	for(int i=1;i<=n;i++){
		scanf("%d:%d %d:%d",&sh,&sm,&lh,&lm); 
		boats[i].begin=sh*60+sm;
		boats[i].end=boats[i].begin+lh*60+lm;
		boats[i].index=i; 
	} 
	sort(boats+1,boats+1+n,cmp); 
	for(int i=1;i<=n;i++){
		cout<

C++这样一大串代码,在20个测试数据中用时最长为:

评分最大时间占用 20 ms

2.Python 

好的,C++时间占用已经给出来了!

现在压力给到Python这边

代码:

n = int(input())
lst = [[''] for i in range(n)]
for i in range(n):
    lst[i] = input().split(" ")
    lst[i].append(i + 1)
    lst[i][1] = (int(lst[i][0][0:2]) + int(lst[i][1][0:2])) * 60 + int(lst[i][0][3:5]) + int(lst[i][1][3:5])

lst.sort(key = lambda x:(x[1],x[0],x[2]))
for i in range(n):
    print(lst[i][2])

 Python的代码短小精悍,让我们看看它的速度

评分最大时间占用 30 ms

总结 

C++的代码比Python可能多了2-3倍,可C++依然胜出,它的运行速度是极高的

C++编译后的执行速度比Python快得多,尤其是在处理大量数据或进行复杂计算时,C++的优势更加明显。

现在比分: 

                                                                1    :    0

(最后有反转,继续观看下一期!!!)

你可能感兴趣的:(C++,Python,C++菜鸟教程,c++,开发语言,python)