python3的pyqt5qtablewidget按数据⼤⼩排列_简学:数据排序
问题
所谓排序,就是使⼀串数字,按照递增或递减的排列起来的操作。排序算法,就是如何使得数据按照要求排列的⽅法。
假设有⼀个⽆序数列:{7,3,9,2,5,1,8},将其按从⼩到⼤的顺序排列。
⽅案1:冒泡排序;
冒泡排序就像汽⽔中的许多⼩⽓泡,不断的飘到上⾯来。这是因为组成⼩⽓泡的⼆氧化碳⽐⽔要轻,所以⼩⽓泡可以⼀点⼀点向上浮动。其思想就是把相邻的元素两两⽐较,根据⼤⼩来交换元素的位置,过程如下:
根据上表不断的重复⽐较,当某⼀轮⽐较,所有元素都未发⽣位置变动,即表明排序完成。
⽅案2:鸡尾酒排序;
鸡尾酒排序是将冒泡排序的⼀个改动,其思想是第⼀轮从左到右,寻最⼤元素,第⼆轮是从右到左,寻最⼩元素,其适⽤于序列中有⼀段数据有⼀定的排序规律。过程如下:
同样当某⼀轮⽐较,所有元素都未发⽣位置变动,即表明排序完成。
⽅案3:快速排序;
冒泡排序是在每⼀轮只把⼀个元素冒泡到数列的⼀端,⽽快速排序则是利⽤分治法的思想在每⼀轮挑选⼀个基准元素,并让其他⽐它⼤的元素移动到数列⼀边,⽐它⼩的元素移动到数列的另⼀边,从⽽把数列拆解成了两个部分。
其中基准元素的选择,有多种⽅法,可以选择第⼀个元素作为基准元素,也可以每次随机选择⼀个元
素作为基准元素。基准元素的选择影响着分治的效果,假设基准元素选择的刚好是最⼤元素或者最⼩元素,则分治将没有任何意义。
选定了基准元素以后,要做的就是把其他元素当中⼩于基准元素的都移动到基准元素⼀边,⼤于基准元素的都移动到基准元素另⼀边。
定义三个指针:L指向最左元素=1,R指向最右元素=7,I指向基准元素=1,X代表⼀个坑,基准元素是第⼀个坑。
快速排序python实现⽅案4:计数排序
建⽴数组Array={a0,a1,a2,,,,a9},将序列值作为数组的下标,依次对相对应的下标计数,a0到a9初始值为0;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论