选择排序之python】的更多相关文章

选择排序算法的工作原理如下: 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…
选择排序( Selection sort) 1.算法描述: 通过n-i次关键字之间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录进行交换. 对尚未完成排序的所有元素,从头到尾比一遍,记录下最小的那个元素的下标,也就是该元素的位置, 把该元素交换到当前遍历的最前面. 其效率之处在于,每一轮中比较了很多次,但只交换一次, 因此虽然它的时间复杂度也是O(n^2),但比冒泡算法还是要好一点. 2.算法属性: 时间复杂度:O(n^2) 空间复杂度:O(1) 稳定性:不…
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次交换.在所有的完全依靠交换去移动元素的排序…
Java 实现 package common; public class SimpleArithmetic { /** * 选择排序 * 输入整形数组:a[n] [4.5.3.7] * 1. 取数组编号为i(i属于[0 , n-2])的数组值 a[i],即第一重循环 * 2. 假定a[i]为数组a[k](k属于[i,n-1])中的最小值a[min],即执行初始化 min =i * 3. 取数组编号为m(m属于[i+1,n-1])的数组值 a[m],即第二重循环 * 4. 若 a[m] < a[m…
最近在学习python,用python实现几个简单的排序算法,一方面巩固一下数据结构的知识,另一方面加深一下python的简单语法. 冒泡排序算法的思路是对任意两个相邻的数据进行比较,每次将最小和最大的数据都放在数组头和尾的位置,每次比较完成后除去头.尾的数据,进行比较.python源码如下: def bubble_sort( ): str_array = raw_input("Input your numbers:") array = list(str_array) l = len(…
一.选择排序 基本思想:选择排序的思想非常直接,不是要排序么?那好,我就从所有序列中先找到最小的,然后放到第一个位置.之后再看剩余元素中最小的,放到第二个位置--以此类推,就可以完成整个的排序工作了.可以很清楚的发现,选择排序是固定位置,找元素. 算法实现: #coding: utf-8 #!/usr/bin/python import random #随机生成0~100之间的数值 def get_andomNumber(num): lists=[] i=0 while i<num: lists…