python选择排序算法的实现代码_python

1.算法:
对于一组关键字{K1,K2,…,Kn}, 首先从K1,K2,…,Kn中选择最小值,假如它是 Kz,则将Kz与 K1对换;
然后从K2,K3,… ,Kn中选择最小值 Kz,再将Kz与K2对换。
如此进行选择和调换n-2趟,第(n-1)趟,从Kn-1、Kn中选择最小值 Kz将Kz与Kn-1对换,最后剩下的就是该序列中的最大值,一个由小到大的有序序列就这样形成。

2.python 选择排序代码:

复制代码 代码如下:

def selection_sort(list2):
    for i in range(0, len (list2)):
        min = i
        for j in range(i + 1, len(list2)):
            if list2[j] < list2[min]:
                min = j
        list2[i], list2[min] = list2[min], list2[i]  # swap

结果为:[2, 3, 4, 21, 33, 44, 45, 67]

时间: 2024-07-28 20:31:12

python选择排序算法的实现代码_python的相关文章

python插入排序算法的实现代码_python

1.算法:设有一组关键字{ K 1 , K 2 ,-, K n }:排序开始就认为 K 1 是一个有序序列:让 K 2 插入上述表长为 1 的有序序列,使之成为一个表长为 2 的有序序列:然后让 K 3 插入上述表长为 2 的有序序列,使之成为一个表长为 3 的有序序列:依次类推,最后让 K n 插入上述表长为 n-1 的有序序列,得一个表长为 n 的有序序列. 2.python插入排序代码 复制代码 代码如下: def insertion_sort(list2):    for i in ra

python冒泡排序算法的实现代码_python

1.算法描述:(1)共循环 n-1 次(2)每次循环中,如果 前面的数大于后面的数,就交换(3)设置一个标签,如果上次没有交换,就说明这个是已经好了的. 2.python冒泡排序代码 复制代码 代码如下: #!/usr/bin/python# -*- coding: utf-8 -*- def bubble(l):    flag = True    for i in range(len(l)-1, 0, -1):        if flag:             flag = False

排序算法的实现及性能分析

排序算法的实现及性能分析 --(java版) 排序是对数据元素序列建立某种有序排列的过程.更确切的说,排序是把一个数据元素序列整理成按关键字递增(或递减)排列的过程. 不过首先,我们必须先解释一下关键字这个词.关键字是要排序的数据元素集合中的一个域,排序是以关键字为基准进行的.而关键字也分为主关键字和次关键字.对于要排序的数据元素集合来说,如果关键字满足数据元素值不同时,该关键字也不同,这样的关键字称为主关键字.不满足主关键字定义的就称为次关键字. 简单来说,排序分为内部排序和外部排序两种.内部

python选择排序算法实例总结

  本文实例总结了python选择排序算法.分享给大家供大家参考.具体如下: 代码1: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 def ssort(V): #V is the list to be sorted j = 0 #j is the "current" ordered position, starting with the first one in the list while j != len(V): #this is the replacin

C++火车入轨算法的实现代码

 这篇文章主要介绍了C++火车入轨算法的实现代码,有需要的朋友可以参考一下 [问题描述]   某城市有一个火车站,铁轨铺设如图所示.有n节车厢从A方向驶入车站,按进站顺序编号为1~n.你的任务是让它们按照某种特定的顺序进入B方向的铁轨并驶出车站.为了重组车厢,你可以借助中转站C.这是一个可以停放任意多节车厢的车站,但由于末端封顶,驶入C的车厢必须按照相反的顺序驶出.对于每个车厢,一旦从A移入C,就不能再回到A了:一旦从C移入B,就不能回到C了.换句话说,在任意时刻,只有两种选择:A→C和C→B.

java几种排序算法的实现及简单分析_java

本文实例讲述了java几种排序算法的实现及简单分析.分享给大家供大家参考.具体如下: package test; public class first { /*普通的插入排序*/ public void insertSort(int[] list) { int i, j; list[0] = -999; //相当于设置一个监视哨兵,不用判断是否越界, //但要求数组从第二个数开始即i=1开始存储 for (i = 1; i < list.length; i++) { j = i; while (

JavaScript 冒泡排序和选择排序的实现代码_javascript技巧

废话不多说了,直接给大家贴代码了,具体代码如下所述: var array = [1,2,3,4,5]; // ---> 服务 //效率 ---> 针对一个有序的数组 效率最高 //标志 true false for(var j = 0; j < array.length - 1;j++ ){ //- j 每次排序完成之后 后面减少比较的次数 var isTrue = true; //如果数组本身就是升序,则直接输出 for(var i = 0; i < array.length -

Python选择排序、冒泡排序、合并排序代码实例_python

前两天刚装了python 3.1.1, 禁不住技痒写点code.1.选择排序 复制代码 代码如下: >>> def SelSort(L):     length=len(L)     for i in range(length-1):         minIdx=i         minVal=L[i]         j=i+1         while j<length:             if minVal>L[j]:                 min

PHP 冒泡排序算法的实现代码_php技巧

复制代码 代码如下: $arr = array(345,4,17,6,52,16,58,69,32,8,234); for($i=1;$i<count($arr);$i++){ for($j=count($arr)-1;$j>=$i;$j--){ if($arr[$j]<$arr[$j-1]){ $temp = $arr[$j-1]; $arr[$j-1] = $arr[$j]; $arr[$j] = $temp; } } } 基本概念 冒泡排序的基本概念是:依次比较相邻的两个数,将小数