帝国cms7.0模板 绿色企业网站模板(整站带数据),沈阳京科男科医院,自己做优惠劵网站赚钱吗,自建网站对于排序算法中比较知名的两个算法#xff0c;分别就是冒泡排序和快速排序#xff0c;在日常学习和使用中都会听到这两种排序算法的名称#xff0c;这里主要介绍如何使用python来实现这两种排序算法。
冒泡排序的实现#xff1a;一是从集合第一个元素开始#xff0c;每两…对于排序算法中比较知名的两个算法分别就是冒泡排序和快速排序在日常学习和使用中都会听到这两种排序算法的名称这里主要介绍如何使用python来实现这两种排序算法。
冒泡排序的实现一是从集合第一个元素开始每两个相邻的元素进行比较大小的行为然后令数值较大的元素向后移动交换这两个元素的位置依次对比直到数组的末尾为结束。经过这一次完整的对比之后即可找到整个集合中最大的那个元素并且这个元素已经经过移动后到达了最后的一个位置。
二是进行第二次排序第二次排序同样是从元素集合的第一个元素开始往后进行对比相邻两个元素较大者往后移位置一直往后对比大小直到倒数的第二个位置结束。这次得到的结果是第二大的元素到了倒数第二个位置。
三就是根据以上步骤进行对比每一趟都会得到一个元素自己所在的最终的位置直到所有元素都完成了排序就得到了最终的排序好的结果。 添加图片注释不超过 140 字可选 B [20, 30, 90, 10, 28, 49, 20, 41, 42, 78]对B集合进行了冒泡排序后的输出结果
def bubbleSort(nums):for i in range(len(nums) - 1):flag 0for j in range(len(nums) - 1 - i):if nums[j] nums[j 1]:temp nums[j 1]nums[j 1] nums[j]nums[j] tempflag 1if flag 0:breakreturn nums
以上是冒泡排序的python实现。
对于冒泡排序的时间复杂度较高的问题对冒泡排序进行优化之后得出的快排。
快排的核心思想就是经过一趟比较即可得到某个元素在排序后的最终位置。
其实现过程是在一个集合中{a1...an}如果选取a1作为基准的元素设置i,j指针初始值为i0,jn-1然后将a1保存为关键keya1。从后往前进行搜索过程中从如果j元素的值大于key则j--一直直到找到第一个比key小的值然后就将i的值和j的值交换位置。然后就是从前往后搜索了从头开始查找如果i元素的值比key的值大的话则i一直到找到比key的值大的元素又将i和j的值进行位置交换。一直返回执行以上操作直到i和j下标一样就是完成了一趟排序了。这个时候key所在的位置就是其在最终排序中的位置而对于这个key左右的子集合是可以套用以上的排序过程。直到最后就是分的每个子集合都只有一个元素为止。即完成了排序。 添加图片注释不超过 140 字可选
快速排序的实现如下
def quickSort(nums, low, high):i lowj highkey nums[i]while i j:while i j and key nums[j]:j - 1nums[i] nums[j]while i j and key nums[i]:i 1nums[j] nums[i]nums[i] keyquickSort(nums, low, i - 1)quickSort(nums, i 1, high)