找回密码
 加入
搜索
楼主: pusofalse

[效率算法] 输出《傻子排序法》

 火... [复制链接]
发表于 2010-8-1 15:53:17 | 显示全部楼层
向大虾们学习了,我就纯支持下。

P版的这个《傻子排序》貌似在哪里见过。嘿嘿!!!
 楼主| 发表于 2010-8-1 15:58:02 | 显示全部楼层
回复 31# 水木子


    QQ空间吗? - -||| 祝水木子兄早日康复。
发表于 2010-8-1 16:06:46 | 显示全部楼层
回复 32# pusofalse
嘿嘿!就是、就是。

康复得差不多了吧!痒痒的,好想抠抠。
发表于 2010-8-2 00:45:44 | 显示全部楼层
正则试试~
如果是这样,估计会把傻子累死~~ O(∩_∩)O
afan 发表于 2010-8-1 14:25



    帅得一塌糊涂~~
发表于 2010-8-2 14:30:44 | 显示全部楼层
本帖最后由 3mile 于 2010-8-2 14:33 编辑

学写个另类的方案,26个字母的“傻子问题”。
本人笨,理解题经常理解到一边去。
感谢P大出题,希望P大能多出点类似的效率算法类的题。以便学习更多的思维方法。
#include <array.au3>

Local $fin
$time = TimerInit()
$str = "POQSTRZIABCDEFGHKJMLNYXWVU"
$st = StringSplit($str, "")
$number = StringLen($str)
$z = $number

While 1
If Asc($st[$z])-64<>$z Then
        $soure=$st[$z]
        _ArrayDelete($st,$z)
        _ArrayInsert($st,Asc($soure)-64,$soure)
        For $i=1 To $number
                $fin&=$st[$i]
        Next
        $fin&=","
Else
        $z-=1
        If $z=0 Then ExitLoop
EndIf
WEnd
_ArrayDisplay($st,TimerDiff($time))
MsgBox(0,TimerDiff($time),$fin)

评分

参与人数 1金钱 +40 收起 理由
pusofalse + 40 学习了!~

查看全部评分

发表于 2010-8-3 02:14:24 | 显示全部楼层
本帖最后由 psp7456 于 2010-8-3 02:16 编辑
#Include <Array.au3>
func _Main($String);$String:待处理字符串
        local $i,$j;循环下标
        local $length=stringlen($String);字符长度
        local $count=0;记录数字和所在位数均相等的数量
        local $temp;临时记录数字值
        local $num=0;记录排序次数
        Dim $pos[$length+1];定义按位记录待排序数据的数组
        
        $pos=stringsplit($String,"");将待排序数据转换成数组
        
        ConsoleWrite("["&$num&"]"&_ArrayToString($pos,",",1,$length) & @CR);初始顺序

        while $count<>$pos[0];在未完成排序前一直循环
                for $i=$length to 1 step -1 ;从最右边开始逐位判断
                        if $pos[$i]=$i then  ;如果位数和值相等,则表示排序正确
                                $count=$count+1
                        else                                ;否则要进行换位操作
                                $temp=$pos[$i]
                                for $j=$i to $pos[$i] step -1
                                        $pos[$j]=$pos[$j-1]
                                next
                                $pos[$temp]=$temp
                                $num=$num+1
                                ConsoleWrite("["&$num&"]"&_ArrayToString($pos,",",1,$length) & @CR);输入中间结果
                                ExitLoop 
                        endif
                next
        Wend
endfunc


local $begin = TimerInit()
 _Main("912345678")
ConsoleWrite("用时"&TimerDiff($begin)&"毫秒!"& @CR)
[0]9,1,2,3,4,5,6,7,8
[1]9,1,2,3,4,5,6,8,7
[2]9,1,2,3,4,5,7,6,8
[3]9,1,2,3,4,5,7,8,6
[4]9,1,2,3,4,6,5,7,8
[5]9,1,2,3,4,6,5,8,7
[6]9,1,2,3,4,6,7,5,8
[7]9,1,2,3,4,6,7,8,5
[8]9,1,2,3,5,4,6,7,8
[9]9,1,2,3,5,4,6,8,7
[10]9,1,2,3,5,4,7,6,8
[11]9,1,2,3,5,4,7,8,6
[12]9,1,2,3,5,6,4,7,8
[13]9,1,2,3,5,6,4,8,7
[14]9,1,2,3,5,6,7,4,8
[15]9,1,2,3,5,6,7,8,4
[16]9,1,2,4,3,5,6,7,8
[17]9,1,2,4,3,5,6,8,7
[18]9,1,2,4,3,5,7,6,8
[19]9,1,2,4,3,5,7,8,6
[20]9,1,2,4,3,6,5,7,8
[21]9,1,2,4,3,6,5,8,7
[22]9,1,2,4,3,6,7,5,8
[23]9,1,2,4,3,6,7,8,5
[24]9,1,2,4,5,3,6,7,8
[25]9,1,2,4,5,3,6,8,7
[26]9,1,2,4,5,3,7,6,8
[27]9,1,2,4,5,3,7,8,6
[28]9,1,2,4,5,6,3,7,8
[29]9,1,2,4,5,6,3,8,7
[30]9,1,2,4,5,6,7,3,8
[31]9,1,2,4,5,6,7,8,3
[32]9,1,3,2,4,5,6,7,8
[33]9,1,3,2,4,5,6,8,7
[34]9,1,3,2,4,5,7,6,8
[35]9,1,3,2,4,5,7,8,6
[36]9,1,3,2,4,6,5,7,8
[37]9,1,3,2,4,6,5,8,7
[38]9,1,3,2,4,6,7,5,8
[39]9,1,3,2,4,6,7,8,5
[40]9,1,3,2,5,4,6,7,8
[41]9,1,3,2,5,4,6,8,7
[42]9,1,3,2,5,4,7,6,8
[43]9,1,3,2,5,4,7,8,6
[44]9,1,3,2,5,6,4,7,8
[45]9,1,3,2,5,6,4,8,7
[46]9,1,3,2,5,6,7,4,8
[47]9,1,3,2,5,6,7,8,4
[48]9,1,3,4,2,5,6,7,8
[49]9,1,3,4,2,5,6,8,7
[50]9,1,3,4,2,5,7,6,8
[51]9,1,3,4,2,5,7,8,6
[52]9,1,3,4,2,6,5,7,8
[53]9,1,3,4,2,6,5,8,7
[54]9,1,3,4,2,6,7,5,8
[55]9,1,3,4,2,6,7,8,5
[56]9,1,3,4,5,2,6,7,8
[57]9,1,3,4,5,2,6,8,7
[58]9,1,3,4,5,2,7,6,8
[59]9,1,3,4,5,2,7,8,6
[60]9,1,3,4,5,6,2,7,8
[61]9,1,3,4,5,6,2,8,7
[62]9,1,3,4,5,6,7,2,8
[63]9,1,3,4,5,6,7,8,2
[64]9,2,1,3,4,5,6,7,8
[65]9,2,1,3,4,5,6,8,7
[66]9,2,1,3,4,5,7,6,8
[67]9,2,1,3,4,5,7,8,6
[68]9,2,1,3,4,6,5,7,8
[69]9,2,1,3,4,6,5,8,7
[70]9,2,1,3,4,6,7,5,8
[71]9,2,1,3,4,6,7,8,5
[72]9,2,1,3,5,4,6,7,8
[73]9,2,1,3,5,4,6,8,7
[74]9,2,1,3,5,4,7,6,8
[75]9,2,1,3,5,4,7,8,6
[76]9,2,1,3,5,6,4,7,8
[77]9,2,1,3,5,6,4,8,7
[78]9,2,1,3,5,6,7,4,8
[79]9,2,1,3,5,6,7,8,4
[80]9,2,1,4,3,5,6,7,8
[81]9,2,1,4,3,5,6,8,7
[82]9,2,1,4,3,5,7,6,8
[83]9,2,1,4,3,5,7,8,6
[84]9,2,1,4,3,6,5,7,8
[85]9,2,1,4,3,6,5,8,7
[86]9,2,1,4,3,6,7,5,8
[87]9,2,1,4,3,6,7,8,5
[88]9,2,1,4,5,3,6,7,8
[89]9,2,1,4,5,3,6,8,7
[90]9,2,1,4,5,3,7,6,8
[91]9,2,1,4,5,3,7,8,6
[92]9,2,1,4,5,6,3,7,8
[93]9,2,1,4,5,6,3,8,7
[94]9,2,1,4,5,6,7,3,8
[95]9,2,1,4,5,6,7,8,3
[96]9,2,3,1,4,5,6,7,8
[97]9,2,3,1,4,5,6,8,7
[98]9,2,3,1,4,5,7,6,8
[99]9,2,3,1,4,5,7,8,6
[100]9,2,3,1,4,6,5,7,8
[101]9,2,3,1,4,6,5,8,7
[102]9,2,3,1,4,6,7,5,8
[103]9,2,3,1,4,6,7,8,5
[104]9,2,3,1,5,4,6,7,8
[105]9,2,3,1,5,4,6,8,7
[106]9,2,3,1,5,4,7,6,8
[107]9,2,3,1,5,4,7,8,6
[108]9,2,3,1,5,6,4,7,8
[109]9,2,3,1,5,6,4,8,7
[110]9,2,3,1,5,6,7,4,8
[111]9,2,3,1,5,6,7,8,4
[112]9,2,3,4,1,5,6,7,8
[113]9,2,3,4,1,5,6,8,7
[114]9,2,3,4,1,5,7,6,8
[115]9,2,3,4,1,5,7,8,6
[116]9,2,3,4,1,6,5,7,8
[117]9,2,3,4,1,6,5,8,7
[118]9,2,3,4,1,6,7,5,8
[119]9,2,3,4,1,6,7,8,5
[120]9,2,3,4,5,1,6,7,8
[121]9,2,3,4,5,1,6,8,7
[122]9,2,3,4,5,1,7,6,8
[123]9,2,3,4,5,1,7,8,6
[124]9,2,3,4,5,6,1,7,8
[125]9,2,3,4,5,6,1,8,7
[126]9,2,3,4,5,6,7,1,8
[127]9,2,3,4,5,6,7,8,1
[128]1,9,2,3,4,5,6,7,8
[129]1,9,2,3,4,5,6,8,7
[130]1,9,2,3,4,5,7,6,8
[131]1,9,2,3,4,5,7,8,6
[132]1,9,2,3,4,6,5,7,8
[133]1,9,2,3,4,6,5,8,7
[134]1,9,2,3,4,6,7,5,8
[135]1,9,2,3,4,6,7,8,5
[136]1,9,2,3,5,4,6,7,8
[137]1,9,2,3,5,4,6,8,7
[138]1,9,2,3,5,4,7,6,8
[139]1,9,2,3,5,4,7,8,6
[140]1,9,2,3,5,6,4,7,8
[141]1,9,2,3,5,6,4,8,7
[142]1,9,2,3,5,6,7,4,8
[143]1,9,2,3,5,6,7,8,4
[144]1,9,2,4,3,5,6,7,8
[145]1,9,2,4,3,5,6,8,7
[146]1,9,2,4,3,5,7,6,8
[147]1,9,2,4,3,5,7,8,6
[148]1,9,2,4,3,6,5,7,8
[149]1,9,2,4,3,6,5,8,7
[150]1,9,2,4,3,6,7,5,8
[151]1,9,2,4,3,6,7,8,5
[152]1,9,2,4,5,3,6,7,8
[153]1,9,2,4,5,3,6,8,7
[154]1,9,2,4,5,3,7,6,8
[155]1,9,2,4,5,3,7,8,6
[156]1,9,2,4,5,6,3,7,8
[157]1,9,2,4,5,6,3,8,7
[158]1,9,2,4,5,6,7,3,8
[159]1,9,2,4,5,6,7,8,3
[160]1,9,3,2,4,5,6,7,8
[161]1,9,3,2,4,5,6,8,7
[162]1,9,3,2,4,5,7,6,8
[163]1,9,3,2,4,5,7,8,6
[164]1,9,3,2,4,6,5,7,8
[165]1,9,3,2,4,6,5,8,7
[166]1,9,3,2,4,6,7,5,8
[167]1,9,3,2,4,6,7,8,5
[168]1,9,3,2,5,4,6,7,8
[169]1,9,3,2,5,4,6,8,7
[170]1,9,3,2,5,4,7,6,8
[171]1,9,3,2,5,4,7,8,6
[172]1,9,3,2,5,6,4,7,8
[173]1,9,3,2,5,6,4,8,7
[174]1,9,3,2,5,6,7,4,8
[175]1,9,3,2,5,6,7,8,4
[176]1,9,3,4,2,5,6,7,8
[177]1,9,3,4,2,5,6,8,7
[178]1,9,3,4,2,5,7,6,8
[179]1,9,3,4,2,5,7,8,6
[180]1,9,3,4,2,6,5,7,8
[181]1,9,3,4,2,6,5,8,7
[182]1,9,3,4,2,6,7,5,8
[183]1,9,3,4,2,6,7,8,5
[184]1,9,3,4,5,2,6,7,8
[185]1,9,3,4,5,2,6,8,7
[186]1,9,3,4,5,2,7,6,8
[187]1,9,3,4,5,2,7,8,6
[188]1,9,3,4,5,6,2,7,8
[189]1,9,3,4,5,6,2,8,7
[190]1,9,3,4,5,6,7,2,8
[191]1,9,3,4,5,6,7,8,2
[192]1,2,9,3,4,5,6,7,8
[193]1,2,9,3,4,5,6,8,7
[194]1,2,9,3,4,5,7,6,8
[195]1,2,9,3,4,5,7,8,6
[196]1,2,9,3,4,6,5,7,8
[197]1,2,9,3,4,6,5,8,7
[198]1,2,9,3,4,6,7,5,8
[199]1,2,9,3,4,6,7,8,5
[200]1,2,9,3,5,4,6,7,8
[201]1,2,9,3,5,4,6,8,7
[202]1,2,9,3,5,4,7,6,8
[203]1,2,9,3,5,4,7,8,6
[204]1,2,9,3,5,6,4,7,8
[205]1,2,9,3,5,6,4,8,7
[206]1,2,9,3,5,6,7,4,8
[207]1,2,9,3,5,6,7,8,4
[208]1,2,9,4,3,5,6,7,8
[209]1,2,9,4,3,5,6,8,7
[210]1,2,9,4,3,5,7,6,8
[211]1,2,9,4,3,5,7,8,6
[212]1,2,9,4,3,6,5,7,8
[213]1,2,9,4,3,6,5,8,7
[214]1,2,9,4,3,6,7,5,8
[215]1,2,9,4,3,6,7,8,5
[216]1,2,9,4,5,3,6,7,8
[217]1,2,9,4,5,3,6,8,7
[218]1,2,9,4,5,3,7,6,8
[219]1,2,9,4,5,3,7,8,6
[220]1,2,9,4,5,6,3,7,8
[221]1,2,9,4,5,6,3,8,7
[222]1,2,9,4,5,6,7,3,8
[223]1,2,9,4,5,6,7,8,3
[224]1,2,3,9,4,5,6,7,8
[225]1,2,3,9,4,5,6,8,7
[226]1,2,3,9,4,5,7,6,8
[227]1,2,3,9,4,5,7,8,6
[228]1,2,3,9,4,6,5,7,8
[229]1,2,3,9,4,6,5,8,7
[230]1,2,3,9,4,6,7,5,8
[231]1,2,3,9,4,6,7,8,5
[232]1,2,3,9,5,4,6,7,8
[233]1,2,3,9,5,4,6,8,7
[234]1,2,3,9,5,4,7,6,8
[235]1,2,3,9,5,4,7,8,6
[236]1,2,3,9,5,6,4,7,8
[237]1,2,3,9,5,6,4,8,7
[238]1,2,3,9,5,6,7,4,8
[239]1,2,3,9,5,6,7,8,4
[240]1,2,3,4,9,5,6,7,8
[241]1,2,3,4,9,5,6,8,7
[242]1,2,3,4,9,5,7,6,8
[243]1,2,3,4,9,5,7,8,6
[244]1,2,3,4,9,6,5,7,8
[245]1,2,3,4,9,6,5,8,7
[246]1,2,3,4,9,6,7,5,8
[247]1,2,3,4,9,6,7,8,5
[248]1,2,3,4,5,9,6,7,8
[249]1,2,3,4,5,9,6,8,7
[250]1,2,3,4,5,9,7,6,8
[251]1,2,3,4,5,9,7,8,6
[252]1,2,3,4,5,6,9,7,8
[253]1,2,3,4,5,6,9,8,7
[254]1,2,3,4,5,6,7,9,8
[255]1,2,3,4,5,6,7,8,9
用时28.379117278439毫秒!

评分

参与人数 1金钱 +45 收起 理由
pusofalse + 45 学习了!

查看全部评分

发表于 2010-8-3 17:12:35 | 显示全部楼层
[0]9,1,2,3,4,5,6,7,8
[1]9,1,2,3,4,5,6,8,7
[2]9,1,2,3,4,5,7,6,8
[3]9,1,2,3,4,5,7,8,6
[4]9,1,2,3,4 ...
psp7456 发表于 2010-8-3 02:14


这样写貌似高效多了,膜拜...
发表于 2010-8-7 09:49:07 | 显示全部楼层
都是高手啊,
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-15 22:07 , Processed in 0.077065 second(s), 18 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表