从1m15.605s到0m0.053s

事情源于昨天晚上butterfly的一个问题:找出一个文本文件中最长的一行,Find the longest line in a text file

由于我上大学后一些错误的观念,所以对算法极其的不重视。现在我所做的就是从头开始顺序读取,然后使用不同的编程语言看看效果。还是先看看結果吧:

环境:文件list.txt是一个16M的纯文本,测试的编程语言(当然有些不能说是编程语言)包括bash、ruby、gawk、python、wc、C(C写出来的效率竟然是wc命令的10多倍)

顺序:从最慢的bash到最快的C

1、BASH脚本

#FILE: long.sh, Author: ABitNo
#!/bin/bash
max=0
while read line; do
  if [ ${#line} -gt $max ]; then
    max=${#line}
    longest=$line
  fi
done
echo $max, $longest
exit 0

READ MORE>>