新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文实例讲述了C语言实现文件内容按行随机排列的算法。分享给大家供大家参考,具体如下:
安源网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联公司2013年开创至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司。在实际工作上有种需求, 就是需要从给定的数据里,随机抽取一部分。
有一种简单的方法是根据总的数据条数和要抽取的数据条数, 通过简单方法,隔几行取一个,这样也能达到随机抽取一部分的目的。
但这样,源数据是顺序的,则抽取的数据也是顺序的,不满足一些情境。
这里实现的功能是: 将全部数据,按行重新随机排列, 这样从结果头部选几行,就是随机抽取的几行了,比较方便。
实现的思路: 对于N行的数据, 给每一行用[1-N]之间不重复的数做标记, 最后按标记数排列即可。(不重复上要稍微费点儿心思)
实现思路比较重要,实现就简单了~
实现上用c结合shell的方式,下面为参考代码。
总控脚本:用不重复随机数做标记,然后按标记排序
#!/bin/sh ### note: sh random.sh in_fname out_fname ### infile=$1 outfile=$2 line_num=`cat $infile | wc -l ` ./random $line_num $infile $outfile.tmp sort $outfile.tmp -k 2 -n -t ' ' | cut -f1 > $outfile
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。