python 实现排序算法(三)-选择排序和冒泡排序
#/usr/bin/env python
#coding:utf-8
#@auther="livermorium"
'''
选择排序
从数据中选择最小值,排在位置首位
再从剩余未排序数据中选择最小值
'''
'''
冒泡排序法
比较是相邻的两个元素比较,把较大或较小的排在前面,这样经过一轮就可以把较大或较小的元素排在最后面
重复上述过程,直到剩余一个元素
''' import random class SelectionSort(): def __init__(self,data):
self.data=data
self.SortResults=[]
self.Sort()
def Sort(self):
i=0
Length=len(self.data)
while i< Length:
minIndex=self.data.index(min(self.data))##寻找最小值得下标,之所以选择下标是为了防止存在重复数据造成排序不全
self.SortResults.append(self.data[minIndex])##把最小值添加到结果表中
#print(self.SortResults)
self.data.pop(minIndex)##删除最小值
#print(self.data)
i=i+1
return self.SortResults class BubbleSort(): def __init__(self,data):
self.data=data
self.SortResults=[]
self.Sort() def Sort(self):
for x in range(len(self.data)): for y in range(x,len(self.data)): ##冒泡法排序
if self.data[x] > self.data[y]:
temp=self.data[x]
self.data[x]=self.data[y]
self.data[y]=temp
#print(self.data)
self.SortResults =self.data
return self.SortResults ####测试 if __name__=="__main__":
print("------选择排序法———————————————")
TestData=[random.randint(1,100) for x in range(9)]
print("原始数据(1):",TestData)
selSort=SelectionSort(TestData)
print("排序结果(1):",selSort.SortResults)
TestData=[11,11,10,9,8,7,8,10]
print("存在重复数值的数据(2):",TestData)
selSort=SelectionSort(TestData)
print("数据(2)排序结果:",selSort.SortResults)
print('\n')
print("------冒泡排序法———————————————")
TestData=[random.randint(1,100) for x in range(9)]
print("原始数据(1):",TestData)
BulSort=BubbleSort(TestData)
print("排序结果(1):",BulSort.SortResults)
python 实现排序算法(三)-选择排序和冒泡排序的更多相关文章
- Python排序算法之选择排序定义与用法示例
Python排序算法之选择排序定义与用法示例 这篇文章主要介绍了Python排序算法之选择排序定义与用法,简单描述了选择排序的功能.原理,并结合实例形式分析了Python定义与使用选择排序的相关操作技 ...
- 八大排序算法~简单选择排序【记录下标k变量的作用】
八大排序算法~简单选择排序[记录下标k变量的作用] 1,思想:打擂台法,数组中的前n-1个元素依次上擂台"装嫩",后边的元素一个挨着一个不服,一个一个上去换掉它 2,优化:通过记录 ...
- 【DS】排序算法之选择排序(Selection Sort)
一.算法思想 选择排序是一种简单直观的排序算法.它的工作原理如下: 1)将序列分成两部分,前半部分是已经排序的序列,后半部分是未排序的序列: 2)在未排序序列中找到最小(大)元素,放到已排序序列的末尾 ...
- 排序算法总结------选择排序 ---javascript描述
每当面试时避不可少谈论的话题是排序算法,上次面试时被问到写排序算法,然后脑袋一懵不会写,狠狠的被面试官鄙视了一番,问我是不是第一次参加面试,怎么可以连排序算法都不会呢?不过当时确实是第一次去面试,以此 ...
- 排序算法之选择排序的python实现
选择排序算法的工作原理如下: 1. 首先在序列中找到最小或最大元素,存放到排序序列的前或后. 2. 然后,再从剩余元素中继续寻找最小或最大元素. 3. 然后放到已排序序列的末尾. 4. 以此类推,直到 ...
- Python排序算法之选择排序
选择排序 选择排序比较好理解,好像是在一堆大小不一的球中进行选择(以从小到大,先选最小球为例): 1. 选择一个基准球 2. 将基准球和余下的球进行一一比较,如果比基准球小,则进行交换 3. 第一轮过 ...
- 八大排序算法之三选择排序—简单选择排序(Simple Selection Sort)
基本思想: 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换:然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素 ...
- Java排序算法之选择排序
一.算法原理 简单选择排序的基本思想:给定数组:int[] arr={里面n个数据}:第1趟排序,在待排序数据arr[1]~arr[n-1]中选出最小的数据,将它与arrr[0]交换:第2趟,在待排序 ...
- 我的Java开发学习之旅------>Java经典排序算法之选择排序
一.算法原理 对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个变量k来记住他的位置, 接着第二次比较,前面"后一个元素"现变成了"前一个元素& ...
随机推荐
- DevExpress 中 设置 labelControl 的背景透明到图片的方法
labelControl 中的 backColor 可以设置为: TransParent 当设置为: Transparent 的时候,labelControl 的背景依然为 主form的背景颜色 ,研 ...
- Hi3518EV200音频相关
1.sample程序可以录音,音频格式为G711A.G711U.G726.ADPCM: 2.ADPCM找不到音频播放器 3.G711格式海思添加了4字节头0x00 0x01 0x0a 0x00,普通播 ...
- mysql之 OPTIMIZE TABLE整理碎片
来看看手册中关于 OPTIMIZE 的描述: OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... 如果您已经删除 ...
- webpack 提取 manifest 文件
当 webpack 生成 bundle 时, 它同时维护一个 manifest 文件.你可以在生成的 vendor bundle 中找到它.manifest 文件描述了哪些文件需要 webpack 加 ...
- i++和++i的笔试题
i = ++i + i++ + i++ + i++; 把每个 i++或者++i看作一个部分,他们的分别再下一个 i++或者++i改变,中途赋值的话,就返回这个部分的值 来自:https://www.j ...
- C166-变量和函数指定物理地址一
1.函数指定地址 按照http://www.keil.com/support/docs/2215.htm C166: LOCATING PROGRAM SECTIONS TO SPECIAL MEMO ...
- Hadoop JAVA HDFS客户端操作
JAVA HDFS客户端操作 通过API操作HDFS org.apache.logging.log4jlog4j-core2.8.2org.apache.hadoophadoop-common${ha ...
- hadoop发行版本之间的区别
Hadoop是一个能够对大量数据进行分布式处理的软件框架. Hadoop 以一种可靠.高效.可伸缩的方式进行数据处理.Hadoop的发行版除了有Apache hadoop外cloudera,horto ...
- [转]You Could Become an AI Master Before You Know It. Here’s How.
转自:https://www.technologyreview.com/s/608921/ai-algorithms-are-starting-to-teach-ai-algorithms/# You ...
- spring boot 整合dubbo
dubbo与springboot的集成和使用dubbo-spring-boot-starter SpringBoot整合Dubbo2.5.10(官方的spring-boot-starter0.1.0) ...