![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
xxd9456
这个作者很懒,什么都没留下…
展开
-
快速排序的java实现
import java.util.Arrays;public class QuickSort { public static void main(String[] args) { int[] a = {1, 2, 4, 5, 7, 4, 5 ,3 ,9 ,0}; System.out.println(Arrays.toString(a)); ...转载 2018-05-25 15:08:09 · 140 阅读 · 0 评论 -
宽度优先遍历——python
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018-05-25 10:16# @Author : xxd# @File : test.pyclass Node: def __init__(self,data,left=None,right=None): self.data=data...原创 2018-05-25 12:19:13 · 657 阅读 · 0 评论 -
堆排序
预备知识堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组...转载 2018-05-26 14:54:57 · 102 阅读 · 0 评论 -
快速排序的另一种简单实现
快速排序的原理:在已知的数列中选择一个数字作为基准,与剩余的数作比较,将比这个基准小的数放在左边,比其大的数放在右边;然后将基准左右两边的数列重复以上步骤,直到基准两边只有一个数字为止; 特点:不稳定,时间复杂度最理想 O(nlogn) 最差时间O(n^2)def quickSort(num, l, r): if l >= r: # 如果只有一个数字时,结束递归 ...原创 2018-05-16 19:50:30 · 161 阅读 · 0 评论 -
选择排序,冒泡排序区别与联系——python 实现
选择排序相邻元素两两比较,大的往后放,第一次完毕后,最小值就出现就出现在第一个。n个元素需要比n-1趟,第i每趟比完就可以少比前面的i个元素,因为那是已经比较完的。l=[2,8,4,1,1,10,6,9,3]n=len(l)for i in range(n-1): for j in range(i+1,n): if l[i]>l[j]: l...原创 2018-05-16 20:09:16 · 179 阅读 · 0 评论