我的部分程式碼如下,我評分結果是
AC (0.1s, 712KB) |
可是排名內有人只用13ms完成,我幾乎是他的10倍時間,請問該如何修正?
sort 時間複雜度是多少? 高手又是用時間複雜度多少的甚麼方法呢?
bool compare(int a, int b) {
return a > b;
}
int main()
{
int n,ch;
cin>>n;
int arr[n];
for(int i=0;i<n;i++){
cin>>arr[i];
}
sort(arr,arr+n);
for(int i=0;i<n;i++){
cout<<arr[i]<<" ";
}
cout<<endl;
sort(arr,arr+n,compare);
for(int i=0;i<n;i++){
if(ch!=arr[i]){
cout<<arr[i]<<" ";
}
ch=arr[i];
}
我的部分程式碼如下,我評分結果是
AC (0.1s, 712KB) 可是排名內有人只用13ms完成,我幾乎是他的10倍時間,請問該如何修正?
sort 時間複雜度是多少? 高手又是用時間複雜度多少的甚麼方法呢?
bool compare(int a, int b) {
return a > b;
}
int main()
{
int n,ch;
cin>>n;
int arr[n];
for(int i=0;i
cin>>arr[i];
}
sort(arr,arr+n);
for(int i=0;i
cout<
}
cout<
sort(arr,arr+n,compare);
for(int i=0;i
if(ch!=arr[i]){
cout<
}
ch=arr[i];
}
sort一次就好 第二行輸出用for(i=n-1;i>=0;--i)倒著輸出
然後不要用scanf printf 我是用自製緩衝區fread跟puts 14ms
可以看看pi的教學 https://horikitacoding.blogspot.com/2019/07/how-to-optimize-your-code-in-c.html