python之选择排序


参考博客:1,http://www.cnblogs.com/luchen927/archive/2012/02/27/2367108.html2,http://www.cnblogs.com/ucos/p/5871354.html

思路:   从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了。可以很清楚的发现,选择排序是固定位置,找元素。前面介绍插入排序是固定元素,找位置。两种排序的思想是不太一样的。

实现技巧:选择排序注意点(假设第一层循环变量为:i;第二层循环变量为:j):1,[0,i-1]是已经排序好的元素。,2,定义一个变量,用来记录本次循环下找到的最小元素的下标。3,第二层循环是从[i,length -1]中找到最小元素的下标,用来与i元素交换。

Python代码:
# coding=utf-8

‘‘‘
选择排序:
思路:
从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,
就可以完成整个的排序工作了。可以很清楚的发现,选择排序是固定位置,找元素。
前面介绍插入排序是固定元素,找位置。两种排序的思想是不太一样的。

实现技巧:

选择排序注意点(假设第一层循环变量为:i;第二层循环变量为:j):
1,[0,i-1]是已经排序好的元素。,
2,定义一个变量,用来记录本次循环下找到的最小元素的下标。
3,第二层循环是从[i,length -1]中找到最小元素的下标,用来与i元素交换。
‘‘‘

s = [2,31,13,1,13,13,1311,3,45]

# select_sort
for i in range(0, len(s) - 1):
    index = i
    for j in range(i + 1, len(s)):
        if s[index] > s[j]:
            index = j
    s[i], s[index] = s[index], s[i]

print s

结果:

 
时间: 2024-08-01 03:58:52

python之选择排序的相关文章

python算法-选择排序

选择排序: 一.语言描述:从一列数字中依次选出最小的放第一位,次小的放第二位,依次类推完成整个排序 第一次遍历,找到最小的数字,放在第一个位置 第二次遍历,找到第二大的数字,放在第二个位置 ...... 以此类推,完成整个排序 固定位置,找元素 对于n个元素的数组,从第一个位置开始,找到最小,放在第一个位置 从第二个位置开始,剩下的数组中,找到最小,放在第二个位置 .... 从第n-1个位置开始,在剩下的数组中,找到最小,放在第n-1个位置 代码实现: # encoding=utf-8 def

python的选择排序和冒泡排序

冒泡排序: #冒泡排序(降序) #冒泡排序要排序n个数,由于每遍历一趟只排好一个数字, #则需要遍历n-1趟,所以最外层循环是要循环n-1次,而 #每次趟遍历中需要比较每归位的数字,则要在n-1次比较 #中减去已排好的i位数字,则第二层循环要遍历是n-1-i次 bb=[6,5,8,2,45,3,9] for ii in range(len(bb)-1): for jj in range(len(bb)-1-ii): if (bb[jj+1]>bb[jj]): temp=bb[jj] bb[jj]

数据结构和算法:Python实现选择排序

程序如下: def selection_sort(alist): n=len(alist) for i in range(n-1):#到n-1停止是因为最后一个肯定是最大的无须比较 min_index=i for k in range(i+1,n):#到n停止是因为到最后一个不一定是最小的,所以需要每一个都进行比较 if(alist[k]<alist[min_index]): min_index=k alist[i],alist[min_index]=alist[min_index],alist

python 实现选择排序

#coding:utf8 def sort(start_list): num = len(start_list) for i in range(num-1): min = i for j in range((i+1),num): if start_list[j] < start_list[min]: min = j (start_list[i],start_list[min]) = (start_list[min],start_list[i]) def main(): start_list =

排序算法(冒泡排序,选择排序,插入排序,快速排序)

数组的排序算法 选择排序 每次选择所要排序得数组中的最大值(由大到小排序,由小到大排序则选择最小值)的数组元素,将这个数组元组的值与最前面没有排序的数组元素进行交换, 第一次排序之后,最大的数字来到了第一位,再从第二个元素开始找,找到最大的元素,与第二个交换位置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 #include <std

《算法图解》之选择排序

讲述内存中的基础数据结构,数组擅长找元素,链表擅长找位置,为了适应对数据不同的操作要求,应当灵活使用. 1. 内存的工作原理 计算机内存犹如有很多抽屉的柜子. 2. 数组和链表 数组中元素的位置称为索引 元素xx位于索引xx处 数组与链表不同操作对应的时间复杂度 3. 选择排序 定义:遍历这个数组,取出最大的元素添加到新数组中并在元数组中删除这个最大元素,再次遍历这个数组...直到原数组为空 Python实现选择排序 def findSmallest(arr): smallest = arr[0

选择排序的3种语言实现方法(C java python)

1.选择排序的思路是:遍历数组,第一遍找出所有成员的最小值,放到数组下标为0的位置,第二遍从剩余内容中,再次找出最小值,放到数组下标为1的位置,以此类推,遍历完成所有的数组内容,最后结果就是:数组是按照从小到大顺序进行排序的. 2.按照C语言.java.python的顺序,分别实现如下,在对应编译平台上都是编译通过的: C语言版本: #include <stdio.h> int main() { int i; int j; int temp; int origin[] = {2,1,4,3,5

选择排序——Python实现

选择排序: 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾.以此类推,直到所有元素均排序完毕. 选择排序的主要优点与数据移动有关.如果某个元素位于正确的最终位置上,则它不会被移动.选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换.在所有的完全依靠交换去移动

JavaScript ,Python,java,Go系列算法之选择排序

常见的内部排序算法有:插入排序.希尔排序.选择排序.冒泡排序.归并排序.快速排序.堆排序.基数排序等.用一张图概括: 选择排序 选择排序是一种简单直观的排序算法,无论什么数据进去都是O(n2) 的时间复杂度.所以用到它的时候,数据规模越小越好.唯一的好处可能就是不占用额外的内存空间了吧.通俗来说就是你们中间谁最小谁就出列,站到队列的最后边,然后继续对着剩余的无序数组说你们中间谁最小谁就出列,站到队列的最后边,一直到最后一个,继续站到最后边,这样数组就有了顺序,从小到大. 1.算法步骤 首先在未排