找回密码
 加入
搜索
查看: 1215|回复: 3

关于中文排序速度极慢(用到_stringtoletter)

[复制链接]
发表于 2009-5-26 19:09:50 | 显示全部楼层 |阅读模式
本帖最后由 yykj 于 2009-5-27 13:24 编辑

简单示例:
#include <UDF_AscII2Alpha_Simple.au3>
#include<array.au3>
Local $array[5]
$array[0]="诛"
$array[1]="猎"
$array[2]="魔"
$array[3]="龙"
$array[4]="炫"
       
For $i = 1 To UBound($array)-1 Step 1
                For $j = UBound($array)-1 To 1 Step -1
           
                        If Asc(_stringtoletter(StringLeft($array[$j],1))) <Asc(_stringtoletter(StringLeft($array[$j - 1],1))) Then
                                ;MsgBox(0,"","OK",1)
                                swap($array[$j], $array[$j - 1])
                        EndIf
                Next
               
        Next
       
        _ArrayDisplay($array)
       
Func swap(ByRef $x, ByRef $y) ;;比较大小不
        Local $t
        $t = $x
        $x = $y
        $y = $t
EndFunc   ;==>swap

本人用这种方法排序,结果当我用来读取一个文本时(过两百字),排序就变得极其慢...请问大家有优化的办法吗?请高手现身说法
 楼主| 发表于 2009-5-26 19:13:50 | 显示全部楼层
我发现_StringToLetter比较影响速度.但中文转字母我就只会用这个了...本人勤学好问.希望帮帮忙.想了几天也找到好办法.
 楼主| 发表于 2009-5-27 13:24:03 | 显示全部楼层
苦思一夜.终于想到解决办法....
发表于 2009-5-27 18:34:43 | 显示全部楼层
自己解决的话,能否给出解决方法,以供后来者学习?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-10 10:49 , Processed in 0.073643 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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