一.前言
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 <iostream>
#include <cstdio>
#include <algorithm>
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<b2.index;
}
return b1.begin<b2.begin;
}
return b1.end<b2.end;
}
int main(){
cin>>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<<boats[i].index<<endl;
}
return 0;
}
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
(最后有反转,继续观看下一期!!!)