উপস্থাপিত সমাধানগুলির সময়ের তুলনা (কোনও উত্তর নয়)
উত্তরের দক্ষতা গুরুত্বপূর্ণ নয়। তবুও, @ জোসেফডাব্লু পদ্ধতির অনুসরণ করে, আমি উপস্থাপিত সমস্ত উত্তরকে সময় দেওয়ার চেষ্টা করেছি।
আমি ভিক্টর হুগো পর্তুগিজ অনুবাদ "লেস মিসরিবলস" (দুর্দান্ত বই!) হিসাবে ইনপুট হিসাবে ব্যবহার করি এবং "ক" এর উপস্থিতি গণনা করি। আমার সংস্করণে 5 টি খণ্ড রয়েছে, অনেক পৃষ্ঠা রয়েছে ...
$ wc miseraveis.txt
29331 304166 1852674 miseraveis.txt
সি উত্তরগুলি জিসিসি দিয়ে সংকলিত হয়েছিল (কোনও অপ্টিমাইজেশন নেই)।
প্রতিটি উত্তর 3 বার চালানো হয়েছিল এবং সেরা চয়ন করুন।
এই সংখ্যাগুলির উপর খুব বেশি বিশ্বাস করবেন না (আমার মেশিন অন্যান্য কাজগুলি ইত্যাদি করছে)) আমি আপনার সাথে এই সময়গুলি ভাগ করছি, কারণ আমি কিছু অপ্রত্যাশিত ফলাফল পেয়েছি এবং আমি নিশ্চিত আপনি আরও কিছু খুঁজে পাবেন ...
- 16 টির 14 টি সময়সীমাবদ্ধ সমাধানগুলি তখন 1s কম নিয়েছিল; ৯.০ এর কম তবে ০.০ সে, পাইপ ব্যবহার করে তাদের অনেকে
- 2 সমাধান, রেখায় বাশ লাইন ব্যবহার করে 30k লাইনগুলিকে নতুন প্রক্রিয়া তৈরি করে প্রক্রিয়াজাত করে, 10/20-এর মধ্যে সঠিক সমাধান গণনা করুন।
grep -oP a
তখন গাছের গতি দ্রুত হয় grep -o a
(10; 11 বনাম 12)
- সি এবং অন্যদের মধ্যে পার্থক্য এতটা বড় নয় যেটা আমি আশা করেছিলাম। (7; 8 বনাম 2; 3)
- (সিদ্ধান্ত স্বাগত)
(এলোমেলো ক্রমে ফলাফল)
=========================1 maxschlepzig
$ time sed 's/[^a]//g' mis.txt | awk '{print length}' > a2
real 0m0.704s ; user 0m0.716s
=========================2 maxschlepzig
$ time tr -d -c 'a\n' < mis.txt | awk '{ print length; }' > a12
real 0m0.022s ; user 0m0.028s
=========================3 jjoao
$ time perl -nE 'say y!a!!' mis.txt > a1
real 0m0.032s ; user 0m0.028s
=========================4 Stéphane Gimenez
$ function countchar(){while read -r i; do echo "$i"|tr -dc "$1"|wc -c; done }
$ time countchar "a" < mis.txt > a3
real 0m27.990s ; user 0m3.132s
=========================5 Loki Astari
$ time awk -Fa '{print NF-1}' mis.txt > a4
real 0m0.064s ; user 0m0.060s
Error : several -1
=========================6 enzotib
$ time awk '{ gsub("[^a]", ""); print length }' mis.txt > a5
real 0m0.781s ; user 0m0.780s
=========================7 user606723
#include <stdio.h> #include <string.h> // int main(int argc, char *argv[]) ... if(line) free(line); }
$ time a.out a < mis.txt > a6
real 0m0.024s ; user 0m0.020s
=========================8 maxschlepzig
#include <stdio.h> // int main(int argc, char **argv){if (argc < 2 || !*argv[1]) { ... return 0; }
$ time a.out a < mis.txt > a7
real 0m0.028s ; user 0m0.024s
=========================9 Stéphane Chazelas
$ time awk '{print gsub(/a/, "")}'< mis.txt > a8
real 0m0.053s ; user 0m0.048s
=========================10 josephwb count total
$ time grep -o a < mis.txt | wc -w > a9
real 0m0.131s ; user 0m0.148s
=========================11 Kannan Mohan count total
$ time grep -o 'a' mis.txt | wc -l > a15
real 0m0.128s ; user 0m0.124s
=========================12 Kannan Mohan count total
$ time grep -oP 'a' mis.txt | wc -l > a16
real 0m0.047s ; user 0m0.044s
=========================13 josephwb Count total
$ time perl -ne '$x+=s/a//g; END {print "$x\n"}'< mis.txt > a10
real 0m0.051s ; user 0m0.048s
=========================14 heemayl
#!/usr/bin/env python2 // with open('mis.txt') as f: for line in f: print line.count('"')
$ time pyt > a11
real 0m0.052s ; user 0m0.052s
=========================15 enzotib
$ time while IFS= read -r line; do line="${line//[!a]/}"; echo "${#line}"; done < mis.txt > a13
real 0m9.254s ; user 0m8.724s
=========================16 bleurp
$ time awk ' {print (split($0,a,"a")-1) }' mis.txt > a14
real 0m0.148s ; user 0m0.144s
Error several -1