选择排序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
// 生成待排序数组
$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),但性能上还是要略优于冒牌排序。

最新文章

  1. Step01-题目申报
  2. hdoj 2039 三角形
  3. js小例子(标签页)
  4. 在R语言环境中无法载入rJava包的解决办法
  5. hihocoder1187 Divisors
  6. C#操作系统日志
  7. Allegro批量复制Via并保持net属性
  8. 转: 基于nginx的hls直播系统
  9. Android开源项目分类汇总[转]
  10. WPF弹出对话确认框
  11. Docker 生成Node.js web app(含端口映射)
  12. 基于ArcEngine的影像数据管理系统研制
  13. 从最大似然到EM算法浅解
  14. 简单分析下用yii2的yii\helpers\Html类和yii.js实现的post请求
  15. [LeetCode] Array Partition I 数组分割之一
  16. UDK命令
  17. MQTT协议
  18. 内置函数二(lambda函数,sorted(),filter(),map(),递归函数,二分法查找)
  19. 免费代理IP地址列表
  20. springcloud 笔记

热门文章

  1. asp.net或javascript判断是否手机访问
  2. Scrapy框架--使用cookie
  3. Mysql [Err] 1293 there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
  4. PHP中使用 $_GET 与$_POST 实现简单的前后台数据传输交互功能
  5. win10 uwp 使用油墨输入
  6. 最美时光第三方UWP源码公开
  7. OpenWRT添加模块 Makefile和Config.in
  8. C 结构体零散知识点
  9. .Net Core程序的部署(FDD与SCD)
  10. pandas.DataFrame学习系列1——定义及属性