C++可以用英文写吗?
可以。
那可以用中文写吗?
。。。可以。
我大中文真是太厉害了!
#include <iostream>
using namespace std;
void QuickSort(int a[],int l,int r){
int i, j, key, tmp;
if(l>r){
return;
}
key=a[l];
i=l;
j=r;
while(i!=j){
while(a[j]>=key && i<j){
j--;
}
while(a[i]<=key&&i<j){
i++;
}
if(i<j){
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
a[l]=a[i];
a[i]=key;
QuickSort(a,l,i-1);
QuickSort(a,i+1,r);
return;
}
int main() {
int l, r,n;
int a[100000]={0};
cin>>n;
l=0;
r=n-1;
for(int i = 0;i<n;i++){
cin>>a[i];
}
QuickSort(a,l,r);
for (int i = 0;i<n;i++){
cout<<a[i]<<" ";
}
return 0;
}
}
这是一段快速排序的代码。
我把它丢进了Google翻译,然后代码变成了这样:
#include<iostream>
#include "chinesec++.hpp"
using namespace std;
定义未知类型的 QuickSort( 整数类型的 a[], 整数类型的 l, 整数类型的 r){
定义整数类型的 i, j, key, tmp;
如果(l>r){
返回;
}
key 等于 a[l];
i 等于 l;
j 等于 r;
循环至 i 不等于 j 为否 {
循环至 a 的第 j 项 大于等于 key 并且 i 小于 j 为否 {
j 累减 ;
}
循环至 a 的第 i 项 小于等于 key 并且 i 小于 j 为否 {
i 累加;
}
如果(i 小于 j){
tmp 等于 a[i];
a[i] 等于 a[j];
a[j] 等于 tmp;
}
}
a[l] 等于 a[i];
a[i] 等于 key;
QuickSort(a,l,i 减 1);
QuickSort(a,i 加 1,r);
返回;
}
定义整数类型的 主函数(){
定义整数类型的 l, r,n;
定义整数类型的 a[100000]={0};
输入>>n;
l 为 0;
r 为 n 减 1;
循环(定义整数类型的 i 为 0;i 小于 n;i 累加 ){
输入>>a[i];
}
QuickSort(a,l,r);
循环(定义整数类型的 i 为 0;i 小于 n;i 累加){
输出<<a[i]<<" ";
}
返回 0;
}
是不是非常的繁琐 简洁!
关键这玩意竟然还能跑起来!
当然,你不能指望用这玩意去水oj 因为C艹不吃这一套。那么怎么能让他吃这一套呢?当然就是抽出CPU,下锅炸至金黄 啦!
咳咳 我们说回正题。
这个项目其实是我图一乐做的一个.hpp文件 放在本机上玩玩还是可以的,但是千万不要指望说用它去打比赛,不然OJ就真·黄给你看。
实现这个也很简单。无非就是在.hpp文件里面无脑堆#define,然后一一对应就完了。
说他没用吧,其实感觉还有点用比如说可以用它直接来跑伪代码(当然需要你的伪代码足够“工整”),或者用它来给初学者入门,也未尝不可。所以说这个东西废,但不完全废
因为时间关系,这个并没有做的很完善,比如for我写成了“循环(…)”。while写成了“循环至…为否”。如果各位大犇想要魔改或者下载,可以去这里看看。代码很简单,可以自己玩玩。
如果有什么不到之处,求大佬轻喷。本文为我原创,要转载的话请私信我。bye~