当前位置: 首页 > news >正文

上海土地建设官方网站做网站有哪个软件好

上海土地建设官方网站,做网站有哪个软件好,甘孜热门抖音代运营,wordpress系统通知邮箱快速排序#xff1a; 学习快速排序#xff0c;要先复习下递归#xff1a; 递归的2个条件#xff1a; 1. 函数自己调用自己 2.有一个退出的条件 练习#xff1a;基于递归下一个函数#xff0c;计算n#xff01;并且求出当n等于10的值。 n#xff01;n * n-1*…..*1 #enc…快速排序 学习快速排序要先复习下递归 递归的2个条件 1. 函数自己调用自己 2.有一个退出的条件 练习基于递归下一个函数计算n并且求出当n等于10的值。 nn * n-1*…..*1 #enconding utf-8 def func(n): if n1: return 1 else: return n*func(n-1) print func(10) 结果3628800 快速排序也是基于递归的思想 核心思想对于一个数组 12 23 3 4 56 21 快排是从里面随机选择一个数如21把所有小于这个数字的排在它的左边把所有大于它的数排在右边。 用指针指明位置遍历数组j- 0到4 用i表示下标i左边的都是小于21的包括下标i 初始值 i-1 -1是针对最小数刚好在最后一位的极端情况 初始值j0 j控制遍历数组的下标。 用j去和21比较如果大于21则空过不处理如果小于21i要加1把i和j指向的元素交换位置 手工排序 i-1 j0 取出12,1221-à i10i和j指向的元素交换位置此时ij0都是指向lista[0];j 12 23 3 4 56 21 i0j1 取出23,21 2321,空过 12 23 3 4 56 21 i0 j2 取出3,21 321- i11;i和j对应元素位置交换,lista[1],lista[2] 12 3 23 4 56 21 i1 j3 取出421,i12; i和j对应元素位置交换 12 3 4 23 56 21 i1;j4 取出5621;空过 12 3 4 23 56 21 把下标i1的元素和最后一个元素交换位置 12 3 4 21 56 23 这样就完成了第一轮的排序。 为什么要选择最后一个数字呢 很容易找到。其实选择哪一个最后的结果都是一样的。因此为了简单我们直接就取的最后一个数作为基准数字。 下面我们来写出12 3 4 以及右子列表56 23快排一次后的结果 左 3 4 12 右23 56 快排程序 1.对于listx调用快排 2.对于listx的左子列表12 3 4进行快排对于listx的右子列表56 23进行快排 3.直到列表只有一个元素的时候退出 #enconding utf-8 def Quick_Sort(lista): def pathSort(lista,sIndex,eIndex):#第一重排序 flag lista[eIndex] i sIndex - 1 for j in xrange(sIndex,eIndex): if lista[j] i1 lista[i],lista[j] lista[j],lista[i] else: pass lista[eIndex],lista[i1] lista[i1],lista[eIndex] return i1 def qSort(listb,sIndex,eIndex): if sIndex eIndex: #如果开始位置大于等于起始位置返回 return middle pathSort(listb,sIndex,eIndex) #递归调用左子列表 qSort(listb,sIndex,middle-1) #递归调用右子列表 qSort(listb,middle1,eIndex) qSort(lista,0,len(lista)-1) return lista if __name__ __main__: print Quick_Sort([12,3,4,21,56,23]) 变形练习1修改成从大到小排列。 #enconding utf-8 def Quick_Sort(lista): def pathSort(lista,sIndex,eIndex):#第一重排序 flag lista[eIndex] i sIndex - 1 for j in xrange(sIndex,eIndex): if lista[j]flag: i1 lista[i],lista[j] lista[j],lista[i] else: pass lista[eIndex],lista[i1] lista[i1],lista[eIndex] return i1 def qSort(listb,sIndex,eIndex): if sIndex eIndex: #如果开始位置大于等于起始位置返回 return middle pathSort(listb,sIndex,eIndex) #递归调用左子列表 qSort(listb,sIndex,middle-1) #递归调用右子列表 qSort(listb,middle1,eIndex) qSort(lista,0,len(lista)-1) return lista if __name__ __main__: print Quick_Sort([12,3,4,21,56,23]) 时间复杂度 第一轮做完快排后发现基准数是最大的一个我们比较了n-1次最后一个 第二轮n-2次 第三轮n-3次 … 第n-1轮1次 123….n-1 n^2/2 时间复杂度为Onlogn 平均情况 n 第一轮n-1排列出2个列表确定了1个结点的位置 第二轮n-3排列出4个列表确定了3个结点的位置 第三轮n-7排列出8个列表确定了7个结点的位置 第四轮n-15排列 出16个列表确定了15个结点的位置 ….. 平均比较次数n-x 2^i-1 总共需要多少轮才能完成快排 2^1 2^2 …..2^i-I n 2*(1-2^i)/1 -2 –I n 2^(i1)-2-I n i1 ~ logn I ~ logn log(n-x) 最终时间复杂度为 Onlogn
http://www.zqtcl.cn/news/307907/

相关文章:

  • 文化投资的微网站怎么做个人微信公众号如何推广
  • 单位的网站怎样设计才美观网页设计图片的代码
  • 长沙专业做网站排名济南手机网站定制费用
  • 西安专题门户响应式网站建设系统网站有哪些
  • 山东省建设局网站监理员考试asp.net mvc6电商网站开发实践
  • 做网站需要提供什么资料网站备案是什么意思
  • 河南网站建设及推广东莞百度代做网站联系方式
  • 大型企业网站制作浦东新区做网站
  • 简单大气网站源码织梦怎么用框架实现在浏览器的地址栏只显示网站的域名而不显示出文件名
  • 电子商务型网站建设线上推广营销策划
  • 网站建设管理工作情况的通报网站开发vs设计报告
  • 嘉定网站网站建设公司官网制作
  • 做旅游广告在哪个网站做效果好财经网站建设
  • 网站样式下载网站地图定位用什么技术做
  • 自己做网站怎么做的百中搜优化软件
  • 南宁建站平台与网站建设相关的论文题目
  • 足球网站建设意义做股权众筹的网站
  • 北京网站建设设计一流的锦州网站建设
  • 专业手机移动网站建设什么网站可以做期刊封面
  • cms建站系统哪个好网站建设 柳州
  • 安徽省住房与城乡建设部网站八戒电影在线观看免费7
  • 江苏省建设考试网站准考证打印佛山网站建设锐艺a068
  • 展示型网站功能如何设计网站风格
  • wordpress图床网站网站什么时候做等保
  • 怎么创办网站浅谈博物馆网站建设的意义
  • 如何做擦边球网站网站seo规划
  • 建站知乎做网站销售工资
  • 仙居住房和城乡建设局网站用手机看网站源代码
  • 网架加工厂家seo关键词优化推广报价表
  • 开发新闻类网站门户网站搭建方案