zoukankan      html  css  js  c++  java
  • python之选择排序

    
    
    参考博客:
    1,http://www.cnblogs.com/luchen927/archive/2012/02/27/2367108.html
    2,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

    结果:

     
  • 相关阅读:
    HDU 4370 0 or 1 (最短路)
    POJ 2449 Remmarguts' Date (K短路 A*算法)
    HDU 5984 Pocky ( 2016 CCPC 青岛 C)
    [leetcode-733-Flood Fill]
    [leetcode-746-Min Cost Climbing Stairs]
    OpenCV学习5-----使用Mat合并多张图像
    人体姿态的相似性评价基于OpenCV实现最近邻分类KNN K-Nearest Neighbors
    OpenCV学习4-----K-Nearest Neighbors(KNN)demo
    [leetcode-728-Self Dividing Numbers]
    [leetcode-724-Find Pivot Index]
  • 原文地址:https://www.cnblogs.com/rrttp/p/7906751.html
Copyright © 2011-2022 走看看