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时为止

代码:

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

def sort1(arr):
    arr2 = list()
    while len(arr):
        num = get_min_item(arr)
        arr2.append(num)
        arr.remove(num)
    return arr2

sort1([3, 9, 7, 1, 5])

二、冒泡排序

比较相邻的元素。如果第一个比第二个大,就交换他们两个。

对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

针对所有的元素重复以上的步骤,除了最后一个。

持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

代码:

def sort2(arr):
    length = len(arr)
    while length >= 2:
        for i in range(length-1):
            if arr[i] > arr[i + 1]:
                arr[i], arr[i+1] = arr[i+1], arr[i]
        length -= 1
    print(arr)

sort2([10, 3, -3, 6, 7, 9, 12, 7, 6, -5])

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

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

python初级(302) 7 列表(排序练习)的相关文章

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) 注意:必须确保增加元素

python初级(302) 6 对象

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

python 使用sort 对列表排序的性能测试

首先对一百万数据进行排序: 对一千万数据进行排序: 对一亿数据进行排序: 原文地址:https://www.cnblogs.com/xuchunlin/p/11441160.html

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) 3 easygui简单使用二

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

python 列表排序方法reverse、sort、sorted基础篇

python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse()方法 将列表中元素反转排序,比如下面这样 >>> x = [1,5,2,3,4] >>> x.reverse() >>> x [4, 3, 2, 5, 1] reverse列表反转排序:是把原列表中的元素顺序从左至右的重新存放,而不会对列表中的参数进行排序

Python 列表排序方法reverse、sort、sorted详解

python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse()方法 将列表中元素反转排序,比如下面这样 1 2 3 4 >>> x = [1,5,2,3,4] >>> x.reverse() >>> x [4, 3, 2, 5, 1] reverse列表反转排序:是把原列表中的元素顺序从左至右的重新存放,而不会对列表

【python cookbook】【数据结构与算法】13.通过公共键对字典列表排序

问题:想根据一个或多个字典中的值来对列表排序 解决方案:利用operator模块中的itemgetter()函数对这类结构进行排序是非常简单的. # Sort a list of a dicts on a common key rows = [ {'fname': 'Brian', 'lname': 'Jones', 'uid': 1003}, {'fname': 'David', 'lname': 'Beazley', 'uid': 1002}, {'fname': 'John', 'lnam

python构造二维列表以及排序字典

1. 构造二维列表: 比如我现在需要一个100*100的二维列表: a = [] for i in range(100): a.append([]) for j in range(100): a[i].append(data) # 这里插入列表元素的值 2. 排序字典: 比如我现在想要python的字典全部按键排序存放: from collections import OrderedDict d = OrderedDict() d['c'] = 1 d['k'] = 2 d['z'] = 3 d

通过遍历而非排序求最值 python list in 时间复杂度 列表元素存在性

Write a function: def solution(A) that, given an array A of N integers, returns the smallest positive integer (greater than 0) that does not occur in A. For example, given A = [1, 3, 6, 4, 1, 2], the function should return 5. Given A = [1, 2, 3], the