游戏开发论坛

 找回密码
 立即注册
搜索
查看: 13339|回复: 59

快速排序

[复制链接]

187

主题

6490

帖子

6491

积分

论坛元老

团长

Rank: 8Rank: 8

积分
6491
发表于 2006-9-23 19:11:00 | 显示全部楼层 |阅读模式
快速排序

Public Sub QuickSort(ByRef aStrSort() As String, ByVal lngleft As Long, ByVal lngright As Long)
    Dim i As Long
    Dim j As Long
    Dim temp As String
    i = lngleft
    j = lngright
    temp = aStrSort(i)
   
NextStep:
    Do Until i >= j
        While (aStrSort(j) > temp And j > i)
            j = j - 1
        Wend
        If j > i Then
            aStrSort(i) = aStrSort(j)
            aStrSort(j) = temp
            i = i + 1
        End If
        While (aStrSort(i) < temp And j > i)
            i = i + 1
        Wend
        If j > i Then
            aStrSort(j) = aStrSort(i)
            aStrSort(i) = temp
            j = j - 1
        End If
    Loop
    If lngleft < i - 1 Then QuickSort aStrSort, lngleft, i - 1
    If lngright > i + 1 Then QuickSort aStrSort, i + 1, lngright
End Sub

187

主题

6490

帖子

6491

积分

论坛元老

团长

Rank: 8Rank: 8

积分
6491
 楼主| 发表于 2006-9-23 19:13:00 | 显示全部楼层

Re:快速排序

速度最快的排序方法。

187

主题

6490

帖子

6491

积分

论坛元老

团长

Rank: 8Rank: 8

积分
6491
 楼主| 发表于 2006-9-23 19:35:00 | 显示全部楼层

算法的基本思想

算法的基本思想:

快速排序的基本思想是基于分治策略的。对于输入的子序列ap..ar,如果规模足够小则直接进行排序,否则分三步处理:

分解(Divide):将输入的序列ap..ar划分成两个非空子序列ap..aq和aq+1..ar,使ap..aq中任一元素的值不大于aq+1..ar中任一元素的值。
递归求解(Conquer):通过递归调用快速排序算法分别对ap..aq和aq+1..ar进行排序。
合并(Merge):由于对分解出的两个子序列的排序是就地进行的,所以在ap..aq和aq+1..ar都排好序后不需要执行任何计算ap..ar就已排好序。
这个解决流程是符合分治法的基本步骤的。因此,快速排序法是分治法的经典应用实例之一。

1

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2006-9-23 19:54:00 | 显示全部楼层

Re:快速排序

用处大着哦

73

主题

612

帖子

618

积分

高级会员

Rank: 4

积分
618
发表于 2006-9-23 19:56:00 | 显示全部楼层

Re:快速排序

这对大量数据排序的速度优化是非常关键的,不错的,我一直用它

270

主题

6442

帖子

6446

积分

论坛元老

Rank: 8Rank: 8

积分
6446
发表于 2006-9-24 12:29:00 | 显示全部楼层

Re: Re: Re:快速排序

griffin2007: Re: Re:快速排序


对你来说没有帮助。



会那么多算法. 你写过什么游戏? [em2]

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-9-24 12:32:00 | 显示全部楼层

Re:快速排序

专业路过.

187

主题

6490

帖子

6491

积分

论坛元老

团长

Rank: 8Rank: 8

积分
6491
 楼主| 发表于 2006-9-24 12:36:00 | 显示全部楼层

Re:快速排序

快排速度快但是没办法尽快知道这组数列的最大值和最小值。

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2006-9-24 12:37:00 | 显示全部楼层

Re: Re: Re: Re:快速排序

游戏之家站长: Re: Re: Re:快速排序


贴这些有什么用?对开发游戏没有任何帮助。


就是,不过是做个“完整游戏”而已,哪用得着那么复杂的东西

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
发表于 2006-9-24 12:53:00 | 显示全部楼层

Re: Re: Re: Re:快速排序

游戏之家站长: Re: Re: Re:快速排序




会那么多算法. 你写过什么游戏? [em2]


真是愚蠢.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 16:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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