选择排序( Selection sort) 1.算法描述: 通过n-i次关键字之间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录进行交换. 对尚未完成排序的所有元素,从头到尾比一遍,记录下最小的那个元素的下标,也就是该元素的位置, 把该元素交换到当前遍历的最前面. 其效率之处在于,每一轮中比较了很多次,但只交换一次, 因此虽然它的时间复杂度也是O(n^2),但比冒泡算法还是要好一点. 2.算法属性: 时间复杂度:O(n^2) 空间复杂度:O(1) 稳定性:不…
选择排序算法的工作原理如下: 1. 首先在序列中找到最小或最大元素,存放到排序序列的前或后. 2. 然后,再从剩余元素中继续寻找最小或最大元素. 3. 然后放到已排序序列的末尾. 4. 以此类推,直到所有元素均排序完毕. 例子图步骤如下: #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = "hsz" def select_sort(alist): n = len(alist) # 外层控制比较几轮 for j in ra…
目录 1. for版本--选择排序 2. while版本--选择排序 3.测试用例 4. 算法时间复杂度分析 1. for版本--选择排序 def select_sort_for(a_list): '''选择排序 for版本''' num = len(a_list) for j in range(num-1): for i in range(j,num): if a_list[i] < a_list[j]: a_list[j],a_list[i] = a_list[i],a_list[j] re…
def findsmallestindex(arr): smallnum = arr[0] smallindex = 0 # 寻找最小元素的位置 for i in range(1,len(arr)): if arr[i] < smallnum: smallnum = arr[i] smallindex = i # 返回最小元素的位置 return smallindex def selectfunsearch(ql): # res存储的排好序的值,也是最终的返回结果 res = [] for i…
基本思想:和冒泡排序.直接插入排序并称为三大简单排序算法.显然,说明它们都很简单…
对于a[0]~a[n]的数组, 默认a[i]最小,和后面的a[i+1]~a[n]进行比较,把最小的和a[i]交换位置,保证本次循环结束后a[i]是上一次未排序的数据中最小的 写法1 a=[12,2,23,4,15] n=len(a) for i in range(n-1): for j in range(i+1,n): if a[j]<a[i]: a[j],a[i]=a[i],a[j] print(a) 写法2(标准写法) a=[12,2,23,4,15] n=len(a) for i in r…
#-*- coding: UTF-8 -*- import numpy as np def SelectSort(a): for i in xrange(0,a.size): min = a[i] p = i for j in xrange(i+1,a.size ): if min > a[j]: min = a[j] p = j if p != i: a[i], a[p] = a[p], a[i] if __name__ == '__main__': a = np.random.randint…
一.选择排序的介绍 选择排序(Selection sort)是一种简单直观的排序算法.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾.以此类推,直到所有元素均排序完毕. 选择排序的主要优点与数据移动有关.如果某个元素位于正确的最终位置上,则它不会被移动.选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换.在所有的完全依靠交换去移动元素的排序…
  # 选择排序 # 作用:对给出的n个顺序不定的数进行排序 # 输入:任意数组A # 输出:按顺序排列的数组A # 时间复杂度 (n(n-1))/2 # 选择排序 # 第一趟:选择第一个元素,依次与每个元素比较,用k记录下最小的元素的位置, #           然后第一个元素与最小的元素交换,此时第一个元素变为最小 # 第二趟:选择第二个元素,依次与除了第一个之外的每个元素比较,用k记录下最小的元素的位置, #           然后第二个元素与最小的元素交换,此时第二个元素变为除第一个…
选择排序算法(Selection Sort)是排序算法的一种初级算法.虽然比较简单,但是基础,理解了有助于后面学习更高深算法,勿以勿小而不为. 排序算法的语言描述: 给定一组物体,根据他们的某种可量化的属性,进行从大到小或从小到大排序. 比如,上体育课的时候,同学们按照身高排队. 排序看起来是一个简单的问题,但针对它的计算机算法有很多,性能各不一样.本文的选择算法即是其中一种. 选择排序算法的语言描述: 选择排序算法是,从一组未排序的物体中,根据某可量化的属性,先选出最小或最大的一个,放到第一个…