python基础编程_32_插入排序,冒泡排序,选择排序
2018-04-02 10:41
477 查看
1.插入排序流程图:
#插入排序
#从第二个数开始比较,把它的值保存为value
#while循环从i-1的位置开始逐步递减和value比较,
#在找到第一个小于value的值时,将该位置的后一个位置的值赋值为value
#在赋值之前,所有位置依次后移一位
mylist=[5,2,4,6,1,3]
for i in range(1,len(mylist)):
value=mylist[i]
j=i-1
while( j>=0 and mylist[j]>value):
mylist[j+1]=mylist[j]
j=j-1
mylist[j+1]=value
print(mylist)
冒泡排序的思想: 每次比较两个相邻的元素, 如果他们的顺序错误就把他们交换位置
冒泡排序原理: 每一趟只能将一个数归位, 如果有n个数进行排序,只需将n-1个数归位, 也就是说要进行n-1趟操作(已经归位的数不用再比较)
3.选择排序
选择排序注意点(假设第一层循环变量为:i;第二层循环变量为:j):
[0,i-1]是已经排序好的元素。
定义一个变量,用来记录本次循环下找到的最小元素的下标。
第二层循环是从[i,length -1]中找到最小元素的下标,用来与i元素交换a = [3, 4, 1, 6, 2, 9, 7, 0, 8, 5]
print(a)
for i in range(len(a)):
for j in range(i+1,len(a)):
if a[i]>a[j]:
a[i],a[j]=a[j],a[i]
print(a)
#插入排序
#从第二个数开始比较,把它的值保存为value
#while循环从i-1的位置开始逐步递减和value比较,
#在找到第一个小于value的值时,将该位置的后一个位置的值赋值为value
#在赋值之前,所有位置依次后移一位
mylist=[5,2,4,6,1,3]
for i in range(1,len(mylist)):
value=mylist[i]
j=i-1
while( j>=0 and mylist[j]>value):
mylist[j+1]=mylist[j]
j=j-1
mylist[j+1]=value
print(mylist)
[1, 2, 3, 4, 5, 6]2.冒泡排序
冒泡排序的思想: 每次比较两个相邻的元素, 如果他们的顺序错误就把他们交换位置
冒泡排序原理: 每一趟只能将一个数归位, 如果有n个数进行排序,只需将n-1个数归位, 也就是说要进行n-1趟操作(已经归位的数不用再比较)
def bubbleSort(nums): for i in range(len(nums)-1): # 这个循环负责设置冒泡排序进行的次数 for j in range(len(nums)-i-1): # j为列表下标 if nums[j] > nums[j+1]: nums[j], nums[j+1] = nums[j+1], nums[j] return nums nums = [5,2,4,6,1,3] print (bubbleSort(nums))
3.选择排序
选择排序注意点(假设第一层循环变量为:i;第二层循环变量为:j):
[0,i-1]是已经排序好的元素。
定义一个变量,用来记录本次循环下找到的最小元素的下标。
第二层循环是从[i,length -1]中找到最小元素的下标,用来与i元素交换a = [3, 4, 1, 6, 2, 9, 7, 0, 8, 5]
print(a)
for i in range(len(a)):
for j in range(i+1,len(a)):
if a[i]>a[j]:
a[i],a[j]=a[j],a[i]
print(a)
[3, 4, 1, 6, 2, 9, 7, 0, 8, 5] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
相关文章推荐
- Python实现冒泡排序、选择排序、插入排序、快速排序、归并排序、二分法查找算法(基于《算法导论》伪代码)
- js实现基础的排序-冒泡排序、选择排序、插入排序
- 算法基础:排序(一)——选择排序、插入排序、Shell排序——Python实现
- 算法基础:排序(一)——选择排序、插入排序、Shell排序——Python实现
- 三种排序算法python源码——冒泡排序、插入排序、选择排序
- 基础排序:冒泡排序、选择排序、插入排序
- Python实现冒泡排序,选择排序,插入排序
- 数据结构之基础排序(选择排序、插入排序、冒泡排序)
- 【程序员笔试面试必会——排序①】Python实现 冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、希尔排序
- 选择排序、插入排序、冒泡排序的编程
- Python实现 -- 冒泡排序、选择排序、插入排序
- python 实现插入排序,冒泡排序,快速排序,选择排序
- 黑马程序员——java基础排序算法:选择排序、冒泡排序和插入排序
- 数据结构与算法——三种基础排序算法C#实现(冒泡排序、选择排序、插入排序)
- 排序基础之插入排序、冒泡排序、选择排序详解与Java代码实现
- PHP四种基础算法详解(冒泡排序、选择排序、插入排序、快速排序)
- 三种排序算法python源码——冒泡排序、插入排序、选择排序
- python开发之路Day17-算法设计(冒泡排序、选择排序、插入排序、二叉树)
- 基础排序总结(冒泡排序、选择排序、插入排序)
- 三种基础排序算法(选择排序、插入排序、冒泡排序)