这是一篇博客搬家的声明。将博客搬迁至csdn
一、概念时间复杂度是总运算次数表达式中受n的变化影响最大的那一项(不含系数)比如:一般总运算次数表达式类似于这样:a*2^n+b*n^3+c*n^2+d*n*lg(n)+e*n+fa ! =0时,时间复杂度就是O(2^n);a=0,b<>0 =>O(n^3);a,b=0,c<>0 =>O(n^2)依此类推eg:(1) for(i=1;i<=n
选择排序是比较简单的一种排序,它的主要思想是每次循环找出最小的数,把它放到未排序的子数组的首位,然后进行下一次循环。 下一次循环的时候,就多了一个排好序的数,少了一次比较。用python如下实现: def Choose_sort(a): N = len(a) for i in range(0, N): min_index = i
看了那么多插入排序,解释一下这个方法。分如下几个步骤:1 认为前面的数列已经完成排序,即按照从小到大的顺序,最大的在最后面2 将接下来要排列的数a[i]存入一个变量中,a[i] = data。即在 i 这个位置挖了一个坑。3 从已经排序的数组a[j]的末尾开始,即从最大值a[j] 开始,data不太老实,想通过 j 遍历排列好的部分,找到比自己大的数,然后让他们依次填坑。如果data大,则循环结束
说到快速排序,真的花了很大的功夫去看,去理解。排序算法是挺复杂的,理解它就好像是剥洋葱一样,一层一层的。好了,下面说说快排的原理吧。 快速排序就像很多网上的文章一样,是分而治之的,通过递归的方式不断的分而治之。每递归一次就找到当前的标杆值将比这个值大的所有数放到标杆值的右边,小的放到左边,然后再分别对标杆
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号