python练习5:输入三个整数 x,y,z,请把这三个数由小到大输出。
输入三个整数 x,y,z,请把这三个数由小到大输出。
排序最简单的就是直接调用内置函数sort()
通过input()函数获取x,y,z将他们存入列表list
然后调用list.sort()进行排序
# 输入三个整数 x,y,z,请把这三个数由小到大输出。x = input('请输入x:')
y = input('请输入y:')
z = input('请输入z:')# list = [] #先定义列表才能使用append()方法 只有列表才可以使用append方法,没声明之前解释器无法判断类型为列表,而是字符型
# list.append(x,y,z) #append()方法只能有一个参数
list = [x,y,z] #直接给list赋值
print('排序前:',list)list.sort() #sort()是内置的排序函数,可以排序字符类型。 默认为升序
print('升序:',list)list.sort(reverse=True) # 如果需要降序排列,则需要传递一个reverse=True作为参数
print('降序:',list)
因为这个题用到了排序,我就想练习一下常用的排序方法,说是练习实际上因为很久不使用已经快忘了,所以最近也看了下原理试着写了出来,
(1)冒泡排序
def BubbleSort(self):list_len = len(self)for i in range(list_len):for j in range(list_len - 1):if self[j] > self[j + 1]:self[j], self[j + 1] = self[j + 1], self[j]print('冒泡排序:', self)# BubbleSort(list)
(2)选择排序
def SelectionSort(self):list_len = len(self)for i in range(list_len):for j in range(i + 1, list_len):if self[i] > self[j]:self[i], self[j] = self[j], self[i]print('选择排序:', self)# SelectionSort(list)
(3)插入排序
def InsertionSort(self):list_len = len(self)# for i in range(list_len-1):# for j in range(list_len):# if self[i] < self[j] and self[i] < self[j - 1]:# self[j], self[i] = self[i], self[j]# elif self[j] < self[i] and self[j] > self[i - 1]:# self[j], self[i - 1] = self[i - 1], self[j]# else:# breakfor i in range(list_len): # 0-14j = ifor x in range(i):if self[j] < self[j - 1]:self[j], self[j - 1] = self[j - 1], self[j]j = j - 1while self[j] > self[j - 1] and self[j] < self[j + 1]:breakprint('插入排序:', self)# InsertionSort(list)
(4)希尔排序
def ShellSort(self):list_len = len(self)increment = list_lenwhile increment >= 2:increment = increment//2print(increment)# print(self)for j in range(increment, list_len):# print(self)print(increment)while j - increment >= 0:print(self)if self[j] < self[j - increment]:# print(self)self[j], self[j - increment] = self[j - increment], self[j]j -= incrementelse:breakprint('希尔排序:', self)# ShellSort(list)
希尔排序是一种优化的排序方法,他的时间复杂度不是O(N²),而是根据增量increment计算的
总结:我只用了四种排序方式,并且在运行定义的方法的时候要确保上一个方法注释没有被运行,不然可能会和我一样以为自己写的方法是正确的,第二次使用时候发现不正确。
我自己试着写出来的时候也参考了其他人的代码,至于原理是这个博主的,它使用的是java代码
https://blog.csdn.net/liang_gu/article/details/80627548
记得看他的这篇文章之前看一下下方的评论,文中可能有描述错误的地方,(不知道现在改了没有)。
python练习5:输入三个整数 x,y,z,请把这三个数由小到大输出。相关推荐
- python输入三个整数、输出最大的数_题目:使用Python编程,输入三个整数x,y,z,请把这三个数由小到大输出...
题目:输入三个整数x,y,z,请把这三个数由小到大输出 思路:这题主要使用list.sort()的方法排列,首先要保证用户输入的数字一定是整数,如果不是整数需要提示用户输入错误,重新输入.(使用try ...
- JAVA输出x和y和z_JAVA实例:输入三个整数x,y,z,请把这三个数由小到大输出-吾爱编程网...
今天为大家分享一个java经典实例输入三个整数x,y,z,请把这三个数由小到大输出,相信很多初学者都会学到这道题目,接下来吾爱编程为大家介绍一下程序的相关写法,有需要的小伙伴可以参考一下: 1.题目: ...
- 萌新的Python练习实例100例(五)输入三个整数x,y,z,请把这三个数由小到大输出。
题目: 输入三个整数x,y,z,请把这三个数由小到大输出. 分析1: 两个两个数字对比,然后改变他们的顺序 x > y x,y的顺序变更为y,x x > z x,z的顺序变更为z,x y ...
- #python 5种方法 输入三个整数 x,y,z,请把这三个数由小到大输出。
#python 输入三个整数 x,y,z,请把这三个数由小到大输出. 方法一 x = int(input('x:')) y = int(input('y:')) z = int(input('z:') ...
- C语言——实例005 输入三个整数x,y,z,请把这三个数由小到大输出。
/*Name: Copyright: Author: Date: 27/07/17 08:44Description: [程序5]题目:输入三个整数x,y,z,请把这三个数由小到大输出.1.程序分析: ...
- 编写Java程序_输入三个整数x,y,z,请把这三个数由小到大输出,请写出实现代码。(3种方法)
要求说明: 输入三个整数x,y,z,请把这三个数由小到大输出. 实现代码: 第1种方法: import java.util.Scanner;public class xyzMaxMin{public ...
- 输入三个整数x,y,z,请把这三个数由小到大输出(C语言函数)
程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换, 然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小. #include ...
- [C++]输入三个整数x,y,z,请把这三个数由小到大输出
#include<iostream> using namespace std; //题目:输入三个整数x,y,z,请把这三个数由小到大输出. void test04() {int x, y ...
- 输入三个整数x,y,z,请把这三个数由大到小输出
输入三个整数x,y,z,请把这三个数由大到小输出 x = int(input('第一个整数x:')) y = int(input('第二个整数x:')) z = int(input('第三个整数x:' ...
- Java_输入三个整数x,y,z,请把这三个数由小到大输出
package cn.myAlgorithm;import java.util.Arrays; import java.util.Scanner;//输入三个整数x,y,z,请把这三个数由小到大输出 ...
最新文章
- 三层架构(我了解并详细分析)
- [CSS] 点击事件触发的动画
- NYOJ-----最少乘法次数
- 【转帖】windows命令行中java和javac、javap使用详解(java编译命令)
- 别求面经了!小夕手把手教你如何斩下和选择NLP算法岗offer!(2020.4.14更新)...
- 太阳系其实是被造出来的!来,用视觉聆听宇宙之音!
- hadoop 2.5.0安装和配置
- Linux cat 命令用法
- vue前端动态分页模板(记录)
- 使用ACR122U和Proxmark3复制IC卡
- spss统计分析基础教程 SPSS统计分析从入门到精通光盘
- windows 安装使用luarocks
- ARINC615-3 与 ARINC844 PART2 协议解析 思维导图
- 网页导出pdf不完整_偶尔偷个懒吧:3种pdf文献全文一键翻译的方法
- 5G-SUPI-SUPC-IMSI
- 什么是GB18030,与GBK的关系?
- AI教父Hinton差点成为中国打工人...
- 三维重建 医学图像的可视化 PyQt Python VTK 四视图(横断面,冠状面,矢状面,3D)
- Android png转vector svg 图片
- ABB软件的robotstudio怎么解决仿真问题(1)