自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 【排序算法】7.堆排序

–堆排序是指利用‘堆’这种数据结构进行排序,而堆则是完全二叉树的一种特殊情况,即在完全二叉树中,若每个根节点均大于(或小于)其孩子节点,则这个完全二叉树称为最大堆(最小堆)。 其算法思路如下: 1.先将一个数组堆积成最大堆,此时根节点的值即为最大值。 2.交换跟节点和末节点,并除去末节点。 3.对数组的1~n-1位再次排列成最大堆,即不断重复1、2步骤,直至完全排列完。 python代码如下: #...

2019-06-14 23:26:17 114

原创 【排序算法】5.归并排序

–归并排序算法思路:先将数组不断均分成两堆,直至只有一个元素,再两两进行排序合并。使用了大量了额外数组空间,但减少了比较次数和写操作。时间复杂度与空间复杂度将再排序算法总结里面讨论。 下面直接展示算法: def merge_sort(nums): #nums为list类型 #分解数组直至数组长度小于1 while len(nums) <= 1: return nums mi...

2019-06-10 21:34:36 71

原创 【排序算法】4.快速排序

–快速排序运用了分而治之的方法,将需要解决的大问题逐步分解成小问题,直到达到一个基线。 快速排序的思路: 1.选择一个基线作为中值,将所有比这个基线小的值放在一个数组里,比基线大的值放在另一个数组里,即[小于基线]+基线+[大于基线] 2.随后再将基线两边的数组进行递归,直到基线左右的数都小于1个时即停止递归。 Python代码如下: def quick_sort(nums): if len(nu...

2019-06-10 21:06:18 88

原创 【排序算法】3.插入排序

–插入算法:从后往前按大小排序逐个插入元素 def insert_sort(nums): ‘’’ nums:list 插入排序,由大到小排序 ‘’’ for i in range(1,len(nums)): for j in range(i, 0,-1): if nums[j] < nums[j - 1]: nums[j], nums[j-1] = nums[j-1], nums[j] nu...

2019-06-05 22:57:46 69

原创 【排序算法】2.选择排序

---选择排序是冒泡排序的改良版,减少了操作的次数。 程序思路如下: 1.在未排序的数组中找到最小(大)的数,放置到数组前端(最后) 2.依次操作,直至最后一个数 算法的时间复杂度为O(n^2) 算法如下(Python): def selection_sort(nums): ''' nums:list 将数组从小到大排序 ''' for i in range(len(nums)-1): min...

2019-06-05 20:17:46 63

原创 【排序算法】1.冒泡排序

–用Python实现冒泡排序算法 def bubble_sort(nums): ‘’’ nums:list 将数组从小到大排序(大数放在最后) ‘’’ for i in range(len(nums)-1,0,-1): for j in range(i): if nums[j] > nums[j+1]: nums[j], nums[j+1] = nums[j+1], nums[j] l = ...

2019-06-04 22:53:28 114

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除