請問怎么輸出一段字串電腦運算最快,可以用源代碼
uj5u.com熱心網友回復:
往哪兒輸出啊? 螢屏嗎? 檔案?列印機? 這些輸出都是硬體限制的,和演算法幾乎沒有多大關系字串從哪里來?需要生成,還是現有的, 這個也許設計到演算法問題
無論那種都是匯編語言最快
uj5u.com熱心網友回復:
輸出字串最快的話,莫如直接寫顯存uj5u.com熱心網友回復:
當然是c的printf最快uj5u.com熱心網友回復:
在oj上使用C語言uj5u.com熱心網友回復:
請問有代碼嗎,使用C語言
uj5u.com熱心網友回復:
printf不夠快,我試過了,別人的速度比printf更快,在oj上使用C語言
uj5u.com熱心網友回復:
這個要看你在那里用了,printf是不夠快的,直接寫內容到輸出對應的記憶體是最快的。
uj5u.com熱心網友回復:
很好奇 你的代碼是什么和別人的差距是多大
為什么會覺得是printf的問題
uj5u.com熱心網友回復:
printf最快uj5u.com熱心網友回復:
當然是c的printf最快
printf不夠快,我試過了,別人的速度比printf更快,在oj上使用C語言
這個要看你在那里用了,printf是不夠快的,直接寫內容到輸出對應的記憶體是最快的。
請問如何寫代碼,比如說輸出hello world
uj5u.com熱心網友回復:
很好奇 你的代碼是什么
和別人的差距是多大
為什么會覺得是printf的問題
沒有別的,就是輸出Helloworld
uj5u.com熱心網友回復:
putchar一個一個輸uj5u.com熱心網友回復:
printf最快
不夠快,而且對于函式的話,輸出字串,puts比printf更快
uj5u.com熱心網友回復:
putchar一個一個輸
試過了,因為不是單個字符,所以比較慢
uj5u.com熱心網友回復:
樓主想輸出什么呢uj5u.com熱心網友回復:
printf 已經是非常快的了,你覺得比較慢可能是因為 OJ 的計時不夠精確。硬要說最快的話,那就是直接呼叫系統 API,但由于 OJ 一般不給你這個機會,可以不考慮。另外,一般的 OJ 不會在 I/O 上給你挖坑,不用關心輸入輸出的速度。uj5u.com熱心網友回復:
用print
uj5u.com熱心網友回復:
樓主新手吧?建議把問題描述詳細、清楚點,輸出如何最快上面有人給了很多方案,比如直接寫入顯存,都是很好的方案,但是我認為樓主的問題根本不在顯示或輸出!真正因為顯示或輸出導致慢的也有,但通常是和GUI相關的,比如處理10萬個資料,每處理一個就顯示一次進度就會很慢,因為時間都花在顯示上面了。
但是,這都是題外話了,樓主直接放題目和代碼吧。
uj5u.com熱心網友回復:
直接就是輸出helloworlduj5u.com熱心網友回復:
樓主新手吧?
建議把問題描述詳細、清楚點,輸出如何最快上面有人給了很多方案,比如直接寫入顯存,都是很好的方案,但是我認為樓主的問題根本不在顯示或輸出!真正因為顯示或輸出導致慢的也有,但通常是和GUI相關的,比如處理10萬個資料,每處理一個就顯示一次進度就會很慢,因為時間都花在顯示上面了。
但是,這都是題外話了,樓主直接放題目和代碼吧。
對,我是才接觸C語言不久,直接寫入顯存我不太會 ,就是直接輸出Helloworld請問能不能麻煩你寫下代碼
uj5u.com熱心網友回復:
往哪兒輸出啊? 螢屏嗎? 檔案?列印機? 這些輸出都是硬體限制的,和演算法幾乎沒有多大關系
字串從哪里來?需要生成,還是現有的, 這個也許設計到演算法問題
無論那種都是匯編語言最快
匯編語言好像不能在oj上運行吧
uj5u.com熱心網友回復:
標準C輸出Helloworld就 puts 最快了
uj5u.com熱心網友回復:
標準C輸出Helloworld
就 puts 最快了
puts也慢了一點
uj5u.com熱心網友回復:
你輸出幾個Hello World啊?如果就這個幾個字符, oj能測出來他們的速度區別那才見鬼了呢
你要說把HelloWord輸出10000次,那有可能。
把完整的oj的題目要求貼出來吧, 到底是個什么要求,很是好奇了
uj5u.com熱心網友回復:
速度是putchar>printf>cout,你可以嘗試一個一個字符putchar,比 printf快不少uj5u.com熱心網友回復:
你輸出幾個Hello World啊?
如果就這個幾個字符, oj能測出來他們的速度區別那才見鬼了呢
你要說把HelloWord輸出10000次,那有可能。
把完整的oj的題目要求貼出來吧, 到底是個什么要求,很是好奇了
那還真是有點奇怪了哈
uj5u.com熱心網友回復:
你輸出幾個Hello World啊?
如果就這個幾個字符, oj能測出來他們的速度區別那才見鬼了呢
你要說把HelloWord輸出10000次,那有可能。
把完整的oj的題目要求貼出來吧, 到底是個什么要求,很是好奇了
我私信你了題目發給你了,第一名是別人的耗時
uj5u.com熱心網友回復:
樓主新手吧?
建議把問題描述詳細、清楚點,輸出如何最快上面有人給了很多方案,比如直接寫入顯存,都是很好的方案,但是我認為樓主的問題根本不在顯示或輸出!真正因為顯示或輸出導致慢的也有,但通常是和GUI相關的,比如處理10萬個資料,每處理一個就顯示一次進度就會很慢,因為時間都花在顯示上面了。
但是,這都是題外話了,樓主直接放題目和代碼吧。
對,我是才接觸C語言不久,直接寫入顯存我不太會 ,就是直接輸出Helloworld請問能不能麻煩你寫下代碼
沒有讓你直接寫入顯存,這個做法如果是dos下面還行,windows下面至少是地獄難度的!同時我認為這不能解決你的問題,就算你提高了速度,也不可能在OJ系統中操作服務器的顯存
讓你直接給出題目以及你的答案,大家幫你分析一下。或者說我說你是新手,就因為你判斷不準問題的重點、要點在哪!
uj5u.com熱心網友回復:
我私信發你了uj5u.com熱心網友回復:
請樓主不要發私信,當然我看到你的私信了,題目就是簡單的輸出hello,word!且樓主就是使用puts函式。但是我還有幾個疑問:
1、為什么不用printf?
2、難道樓主想和人比拼運行速度或題目就是要比速度?要知道OJ本身的原因,速度只是一個寬泛的要求,比如要求50ms以內就合格,而大家正常的速度通常只有幾個ms,沒有比速度特別是用OJ比速度的道理啊
uj5u.com熱心網友回復:
請樓主不要發私信,當然我看到你的私信了,題目就是簡單的輸出hello,word!且樓主就是使用puts函式。
但是我還有幾個疑問:
1、為什么不用printf?
2、難道樓主想和人比拼運行速度或題目就是要比速度?要知道OJ本身的原因,速度只是一個寬泛的要求,比如要求50ms以內就合格,而大家正常的速度通常只有幾個ms,沒有比速度特別是用OJ比速度的道理啊
uj5u.com熱心網友回復:
也許別人是攻擊了 oj而不是代碼真的比你快
以前還有 時間為負數的 成績
別想太多了
就puts 完事
uj5u.com熱心網友回復:
回復為了加經驗uj5u.com熱心網友回復:
回復為了加經驗
這個比較強。。
uj5u.com熱心網友回復:
也許別人是攻擊了 oj
而不是代碼真的比你快
以前還有 時間為負數的 成績
別想太多了
就puts 完事
我在打擂臺




uj5u.com熱心網友回復:
oj的代碼運行時間影響的因素很多,同一代碼提交幾次的運行時間都未必一樣。當年上學的時候玩poj也要爭個第一,但是poj的rank是按代碼量、運行時間、記憶體占用來排的,運行時間只占第二位uj5u.com熱心網友回復:
也許別人是攻擊了 oj
而不是代碼真的比你快
以前還有 時間為負數的 成績
別想太多了
就puts 完事
我在打擂臺
不會是你們幾個同學自己想出來的打擂吧?!
正如本人前面說的和36樓說的,OJ不適合這種速度的打擂,這沒有意義,前面的人很可能只是運氣好,放棄吧!
uj5u.com熱心網友回復:
謝謝各位,了解了uj5u.com熱心網友回復:
printfuj5u.com熱心網友回復:
看來基本清楚了,情況是這樣的:OJ中一個最入門的題目:輸出hello,word!
然后樓主看其同學(都是初學者)運行速度比他快,就想反超同學。
這就是一個初學者因為不懂(特別是不懂OJ)產生的想法,這種事情不值得做,因為是這種簡單的問題,快的同學并不能代表其代碼本身就快。而因為樓主描述不清楚,大家都浪費了很多表情。
uj5u.com熱心網友回復:
為什么非要細究這種毫無意義的問題呢?和很多因素有關,其中最關鍵的是和作業系統的設計原理有關。uj5u.com熱心網友回復:
#include <stdio.h>
int main()
{
return puts("Hello World");
}
樓主,試試這樣快嗎?
uj5u.com熱心網友回復:
看來基本清楚了,情況是這樣的:
OJ中一個最入門的題目:輸出hello,word!
然后樓主看其同學(都是初學者)運行速度比他快,就想反超同學。
這就是一個初學者因為不懂(特別是不懂OJ)產生的想法,這種事情不值得做,因為是這種簡單的問題,快的同學并不能代表其代碼本身就快。而因為樓主描述不清楚,大家都浪費了很多表情。
嗯嗯,謝謝指導
uj5u.com熱心網友回復:
#include <stdio.h>
int main()
{
return puts("Hello World");
}
樓主,試試這樣快嗎?
試了,不行,謝謝
uj5u.com熱心網友回復:
匯編最快,,,。。。。。。uj5u.com熱心網友回復:
樓上很多人的觀點不對!1、比如說寫顯存,其實樓主的問題根本不是顯示,只是輸出,結合OJ來看,根本沒有顯示,只是一個輸出重定向,所以沒顯存什么事,這個辦法行不通!
2、匯編,大家知道C語言通常稱為中級語言,但不是標準的低級語言,所以這里不能用匯編,原因有2:一個是OJ什么硬體不清楚,所以匯編不可能,二是OJ本身就針對C語言,可能不讓用,另外問題非常簡單,考慮到編譯器有優化,可能匯編在這真沒有優勢,真要快可能考慮一下編譯器的優化更有效,但是OJ如何編譯是服務器端的事,屬于不控的,所以也不用考慮匯編了。
另,有人說puts比printf快,這二者哪個快我真心沒研究,但是需要考慮真實的環境,希望精通此方面的高手出來分析一下
uj5u.com熱心網友回復:
樓上很多人的觀點不對!
1、比如說寫顯存,其實樓主的問題根本不是顯示,只是輸出,結合OJ來看,根本沒有顯示,只是一個輸出重定向,所以沒顯存什么事,這個辦法行不通!
2、匯編,大家知道C語言通常稱為中級語言,但不是標準的低級語言,所以這里不能用匯編,原因有2:一個是OJ什么硬體不清楚,所以匯編不可能,二是OJ本身就針對C語言,可能不讓用,另外問題非常簡單,考慮到編譯器有優化,可能匯編在這真沒有優勢,真要快可能考慮一下編譯器的優化更有效,但是OJ如何編譯是服務器端的事,屬于不控的,所以也不用考慮匯編了。
另,有人說puts比printf快,這二者哪個快我真心沒研究,但是需要考慮真實的環境,希望精通此方面的高手出來分析一下
嗯嗯,我也一直沒有碰到精通此方面的博主
uj5u.com熱心網友回復:
應該是puts快,直接輸出一個字串,而printf要逐字符掃描一遍format串uj5u.com熱心網友回復:
void main(){char a[100];
scanf("%s",a);
printf("%s",a);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/111530.html
標籤:C語言
