python初级(302) 8 列表(选择排序练习二)

一、复习:

条件循环:while

i = 3
while i > 0:
    print(i)
    i –= 1

arr = [2, 3, 5, 7, 9]
while len(arr) > 0:
    num = arr[0]
    arr.remove(num)
    print(arr)

选择排序:

[3, 10, 2, 7, 16]

1、找到最小值get_min()

def get_min(arr):
    num = arr[0]
    for i in range(1, len(arr)):
        if arr[i] < num:
            num = arr[i]
    return num

get_min([3, 5, 9, 2, 7])

二、选择排序

第二步:将最小值加入到新列表中,并从旧表表中删除

第三步:再次找最小值,直到旧列表为空

def xuanze(arr):
    arr2 = list()
    while len(arr) > 0:
        num = get_min(arr)
        arr.remove(num)
        arr2.append(num)
    return arr2

new_1 = xuanze([3, 5, 9, 2, 7])
print(new_1)
new_2 = xuanze([7, 9, 3, 2, 8])
print(new_2)
new_3 = xuanze([8, 9, 3, 7, 2])
print(new_3)

三、课后扩展

将排序集成到一个类中

class MySort:
    """
    排序集合
    """

    def get_min(self, arr):
        num = arr[0]
        for i in range(1, len(arr)):
            if arr[i] < num:
                num = arr[i]
        return num

    def xuanze(self, arr):
        """
        选择排序
        """
        arr2 = list()
        while len(arr) > 0:
            num = self.get_min(arr)
            arr.remove(num)
            arr2.append(num)
        return arr2
mysort = MySort()
arr = mysort.xuanze([3, 5, 2, 7, 8])print(arr)

原文地址:https://www.cnblogs.com/luhouxiang/p/12208679.html

时间: 2024-08-30 15:29:06

python初级(302) 8 列表(选择排序练习二)的相关文章

python初级(302) 5 列表

一.复习 1.函数的创建 1) def关键字 2) 函数名及后面跟随的括号 3)冒号加上函数体 2.函数的调用 函数名及后面跟随的括号 3.带一个,二个,三个参数的函数及调用 二.列表 family = ['Mom', 'Dad', 'Baby'] nums = [1, 2, 3, 4] 列表:一堆数据存在一起,放在某种组或者集合中1.创建列表: a = list() b = [1, 2, 3, 4] 2.向列表增加元素 a.append(4) b.append(100) 注意:必须确保增加元素

(二)选择排序之二:简单选择排序

选择排序分为:简答选择排序.树形选择排序.堆排序,今天来学一下简答选择排序. 具体代码如下: package com.cust.heap; /** * * 描述:简单选择排序 * @author cookie */ public class 简单选择排序 { public static void main(String[] args) { int[] array = new int[]{2,5,6,9,4,1,7}; print(array);//打印 for(int i = 0; i < ar

python初级(302) 1 环境搭建及简单使用

一.安装anaconda(python环境) 1 地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=A 选择Anaconda3-5.3.1-Windows-x86_64.exe下载安装 2 安装 一路默认点击安装,在Advanced Options时,增加选中Add Anaconda to the system PATH environment variable选项,然后再一路默认安装完成 如下图 3 验证安装成功 打

python初级(302) 6 对象

函数可以把收集一些代码,列表可以收集变量(数据),对象可以把函数和数据收集在一起. 一.真实世界中的对象: 以篮球为例:通过颜色,大小,重量,价格等来描述一个球,这些就是球的属性,属性也叫(特性):一个物品(对象)本来就有的东西. 球拿到手,我们需要玩,比如捡球,抛球,拍球或者充气.我们把这些操作称为动作. 真实世界的真实对象(物品)包括两个方面 1.如何描述(属性或特性) 2.可以对它做什么(或是它自己能做什么)(动作) 二.Python中的对象 1.一些概念 在Python中,一个对象的特征

python初级(302) 3 easygui简单使用二

一.复习 1.easygui 信息提示对话框 2.easygui 是否对话框 二.easygui其它组件 1.选择对话框:choicebox(msg, title, choices) import easygui as g msg = "输入你喜欢的颜色" title = "游戏互动" choices = ["红色", "绿色", "蓝色", "青色"] choice = g.choic

python之选择排序

参考博客:1,http://www.cnblogs.com/luchen927/archive/2012/02/27/2367108.html2,http://www.cnblogs.com/ucos/p/5871354.html 思路: 从所有序列中先找到最小的,然后放到第一个位置.之后再看剩余元素中最小的,放到第二个位置--以此类推,就可以完成整个的排序工作了.可以很清楚的发现,选择排序是固定位置,找元素.前面介绍插入排序是固定元素,找位置.两种排序的思想是不太一样的. 实现技巧:选择排序注

python初级(302) 7 列表(排序练习)

一. 选择排序 [3, 10, 2, 7, 16] 第1次:[3, 10, 2, 7, 16]找出2, 放入新数组中[2] 第2次:[3, 10, 7, 16]找出3, 追加到新数组中[2, 3] 第3次:[10, 7, 16]找出7,追加到新数组中[2, 3, 7] 第4次:[10, 16]找出10,追加到新数组中[2, 3, 7, 10] 第5次:[16]找出16, 追加到新数组中[2, 3, 7, 10, 16] 排序完成 关键点:找到最小值 观察,查找最小数一直持续到原先的列表长度为0时

python初级(302) 7 列表

一.列表的概念: 1.创建一个列表 friends = list() 2.列表可以包含的内容: m_list = [5, 7, 9, 20] letters = ['a', 'b', 'e'] 3.从列表获取元素和修改元素 letters[3] 索引从0开始 m_list[2] = 100 4.列表的分片 m_list[1:3] 分片的简写 m_list[:2] 5 增加元素和删除元素: append() remove() 二.选择排序: 算法: 一堆数据中,先找出最小的数来,将之放入新数组中,

python初级(302) 7 列表(二)冒泡排序

一.复习: 1.如何创建一个空列表,如何创建一个有数据的列表 2.列表可以包含的内容 3.从列表中获取元素和修改元素的方法 4.列表的分片 5.增加元素和删除元素 6.选择排序的算法: 一堆数据,每次找出最小的放入新数组,然后原数组中的数删除,直到原数组为空 二.冒泡排序 一堆数据,从左向右,每次比较相邻两个数,前一个比后一个大,就交换位置,然后继续比较,一直比较到最大的那个排到最后.然后再次遍历数组,这次最后那个已经排好了,所以只需要比到倒数第二个,以此类推 数据: arr = [9, 7,