数据结构与算法
nekoli
这个作者很懒,什么都没留下…
展开
-
排序算法(一):快速排序算法
快速排序算法原理:快速排序算法是冒泡排序的一种改进,快速排序也是通过逐渐消除待排序的无序序列中逆序元素来实现排序的。快速排序算法的思想很简单,在序列中任意挑选一个元素作为key,把序列中其它比key小的元素放key左边(左序列),比key大的元素放key右边(右序列),然后对左序列跟右序列也进行同样的操作,直到整个序列排序完成。快速排序算法的步骤:(1)挑选序列arr中的某个元素(...原创 2019-04-20 14:22:30 · 489 阅读 · 0 评论 -
排序算法(二):冒泡排序
冒泡排序算法原理序列arr中有n个元素,每次比较相邻的两个元素,如果右边的元素小于左边的元素,就交换两个元素,冒泡排序就是让最大的元素在每一轮排序后“冒泡”到序列的最后一位。因为有n个元素,所以需要比较n-1轮,第i轮需要比较n-i次。冒泡排序算法python实现class MPsort(object): def sort(self,arr): fo...原创 2019-04-20 14:55:58 · 206 阅读 · 0 评论 -
排序算法(三):选择排序算法
选择排序算法原理选择排序算法首先从序列中选择一个元素arr[i](通常是第一个)作为当前最小值,然后把arr[i]依次与序列中arr[i]之后的元素作比较,如果有元素小于arr[i]的,就让它跟arr[i]交换。然后再选择arr[i+1]作为下一轮比较的最小值,然后继续比较......选择排序算法原理很简单,就是每次把未排序的序列中的最小值找到,然后将它放入已排序序列的末尾。选择排序算...原创 2019-04-20 15:29:22 · 338 阅读 · 0 评论 -
【算法】卡特兰数(折线法)——N个元素的栈出栈可能性
转载自:https://blog.csdn.net/mystery_guest/article/details/530140331.饭后,姐姐洗碗,妹妹把姐姐洗过的碗一个一个地放进碗橱摞成一摞。一共有n个不同的碗,洗前也是摞成一摞的,也许因为小妹贪玩而使碗拿进碗橱不及时,姐姐则把洗过的碗摞在旁边,问:小妹摞起的碗有多少种可能的方式?2.给定n个数,有多少种出栈序列?3.一个有n个1和n...转载 2019-05-23 11:20:31 · 1354 阅读 · 0 评论