PHP快速排序QuickSort实例详解
本文阐述了PHP快速排序快速排序。分享给您参考,如下:快速排序
在快速排序算法,使用分而治之的策略。首先,序列分为两个子序列进行排序,并递归地直到整个序列完成。(这是分两。观念)
以下步骤如下:
选择一个键元素作为序列中的一个轴。
重新排序序列,将较小的元素移动到轴的前面,将大于轴的元素移动到轴的后部。
递归排序两个子序列的子序列:含有小元素和含有较大的元素。
例如,序列为ARR:
53011447232集的第一个元素为数组{ 0 } = 5为轴线设置标志低…顶代表第一和最后
23011447232从相反方向(右)开始比较:2 < 5替换第一个位置为2,低+ +
230114472311从相反方向(左)开始,直到最后一个地方被5。11,11,顶部取代—
重复上述步骤,直到低位=顶部位置替换轴元素5。
二百三十亿五千四百四十七万二千三百一十一
这可以分为两部分,230和442311。
这允许递归继续启动步骤。
Algorithm implementation:
类quick_sort {
功能快速排序(ARR美元,美元美元低,顶部){
如果(低上千美元){
pivotpos美元=美元->分区(ARR美元,美元美元低,顶部);
美元->快速排序(ARR美元美元美元,低,pivotpos-1);
美元->快速排序($ ARR,pivotpos + 1美元美元,顶);
}
}
功能分区(ARR美元,美元美元低,顶部){
如果($ = $顶部){
返回;
}
设置初始值
美元美元美元ARR COM = {低};
而(低)!= top){
将小初值替换为左的小值
而(最高美元)!= $ $){
如果($ COM >美元ARR { $顶}){
$ ARR { $低+ } = {顶} ARR美元美元;
打破;
其他{ }
顶上--;
}
}
较大的值比初始替换右边的值大。
而(低,低,低)!= top){
如果(美元美元美元COM << ARR {低}){
ARR {顶}美元美元美元美元= ARR {低};
打破;
其他{ }
低+ +;
}
}
}
ARR { } =低美元美元美元的COM;
返回低;
}
}
有关感兴趣的读者的PHP相关内容的更多信息,请参见专用站点:php
希望本文能对PHP程序设计有所帮助。