本站资源全部免费,回复即可查看下载地址!
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
选择排序Python实现[Python] 纯文本查看 复制代码 import random
# 生成待排序数组
a=[random.randint(1,999) for x in range(0,36)]
# 选择排序
def selectionSort(array):
i=0
while i<len(array)-1:
min = i
j = i+1
while j<len(array):
if array[min] > array[j]:
min = j
j = j+1
if i != min:
array[i],array[min] = array[min],array[i]
i = i+1
# 使用选择排序处理数组
selectionSort(a)
print(a)
快速排序PHP实现
[PHP] 纯文本查看 复制代码 <?php
// 生成待排序数组
$a = [];
for($i=0;$i<36;$i++){
array_push($a,mt_rand(1,999));
}
shuffle($a);
/**
* 选择排序算法 selection sort
* @param [type] a 待排序数组的地址
* @return null
*/
function selectionSort(&$a){
$min = 0;
$len = count($a);
for($i = 0; $i<$len-1; $i++){
$min = $i;
// 在下标为$i之后的数组元素中查找比$a[$i]小的元素
for($j = $i+1; $j<$len; $j++){
// 若找到比$a[$i]小的元素,则记录此元素的下标
if($a[$min] > $a[$j]){
$min = $j;
}
}
// 若找到比$a[$i]小的元素,则交换元素位置
if($min != $i){
$a[$i] += $a[$min];
$a[$min] = $a[$i] - $a[$min];
$a[$i] -= $a[$min];
}
}
}
selectionSort($a);
var_dump($a);
选择排序时间复杂度说明比较次数:n(n-1)/2
交换次数:最好的时候为0,最差的时候为n-1次
总时间复杂度:O(n2)
尽管选择排序与冒泡排序的时间复杂度同为O(n2),但性能上还是要略优于冒牌排序。
|