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

网站维修合同做网站的素材图片

网站维修合同,做网站的素材图片,360建筑网电脑版,想代理个网站建设平台引言#xff1a;快速排序作为一种非常经典且高效的排序算法#xff0c;无论是工作还是面试中广泛用到#xff0c;作为一种分治思想#xff0c;需要熟悉递归思想。下面来讲讲快速排序的实现和改进。 老规矩#xff0c;先用图解来理解一下#xff1a;#xff08;这里使用快… 引言快速排序作为一种非常经典且高效的排序算法无论是工作还是面试中广泛用到作为一种分治思想需要熟悉递归思想。下面来讲讲快速排序的实现和改进。 老规矩先用图解来理解一下这里使用快速排序中的“挖坑法” 笔误下面这个图right是--的  以此往复 下面是代码 void dfs_quick_sort(int* arry, int left, int right) {if ((right - left) 0) return;//添加一个三数取中的操作int key arry[left];int end right;int begin left;while (left right) {while (left right arry[right] key) {right--;}arry[left] arry[right];while (left right arry[left] key) {left;}arry[right] arry[left];}arry[right] key;dfs_quick_sort(arry,begin, left - 1);dfs_quick_sort(arry,right 1, end); } //挖坑法 void quick_sort(int* arry, int size) {assert(arry);dfs_quick_sort(arry, 0, size - 1); } 测试代码: void test_quick_sort(int* arry, int size) {Printf(arry, size);quick_sort(arry, size);Printf(arry, size); } int main() {int arry[] { 2,3,1,6,21,78,11,36,11,11,9 };int len sizeof(arry) / sizeof(arry[0]);//test_insertion_sort(arry, len);//est_shell_sort(arry, len);//test_select_sort(arry, len);//test_heap_sort(arry, len);//test_bubble_sort(arry, len);test_quick_sort(arry, len);return 0; } MORE:试想如果刚刚演示的图中一开始取到的不是1而是5是不是步骤会少很多因为如果拿到的是排好序后的中间数这个数左边是比他小的右边是比他大的每次这样相当于每次都二分这样向下递归层数就是logN而如果每次拿到的key是最大或最小的数第一次操作完还剩n-1个第二次还剩n-2....。层数为n层时间复杂度为N^2。 所以我们要尽量选到一个靠近排序好的中间的数不要选到最大或最小的数为key。 下面将代码进行改进取最左边和最右边和中间三个值中的中间数 int mid_quick_number(int* arry, int left, int right) {int mid left (right - left 1);//去中间数防止普通求中间数溢出问题if (arry[mid] arry[left]) {if (arry[right] arry[mid]) {mid mid;}else if(arry[right]arry[left]){mid right;}else {mid left;}}else {if (arry[right] arry[mid]) {mid mid;}else if (arry[right] arry[left]) {mid left;}else {mid right;}}return mid; } void dfs_quick_sort(int* arry, int left, int right) {if ((right - left) 0) return;//添加一个三数取中的操作int mid mid_quick_number(arry, left, right);swap(arry mid, arryleft);int key arry[left];int end right;int begin left;while (left right) {while (left right arry[right] key) {right--;}arry[left] arry[right];while (left right arry[left] key) {left;}arry[right] arry[left];}arry[right] key;dfs_quick_sort(arry,begin, left - 1);dfs_quick_sort(arry,right 1, end); } //挖坑法 void quick_sort(int* arry, int size) {assert(arry);dfs_quick_sort(arry, 0, size - 1); }
http://wiki.neutronadmin.com/news/279167/

相关文章:

  • 河南网站建设的公司为什么要建设双端网站
  • 唐山做企业网站网站信息维护方案
  • 百度推广网站一年多少钱彩票网站怎么做系统
  • 网站建设技术方面安徽合肥最新消息
  • 常州网站建设常州北海市做网站的公司
  • 网站推广工具有哪些千锋教育招聘
  • 精湛的赣州网站建设优班图搭建网站
  • 房产中介网站开发费用济宁网站建设公司电话
  • 建一个网站西安做义工网站
  • 做网站开发的公司企业运营
  • php网站费用局域网内服务器做网站
  • 网上购物网站开发的目的建设网站服务器自营方式
  • 织梦网站搜索怎么做wordpress 试题
  • 宝安led行业网站建设深圳有哪些公司名称
  • 网站开发笔试题北京建站程序
  • asp网站耗资源关于网站开发的商业计划书
  • 网站布局结构图河北邢台出大事啦
  • wordpress主题激活手机端网站怎么做seo
  • 莆田手表网站网站制作 电子商城
  • 网站收录查询方法平台推广是什么
  • 网站目录优化合肥瑶海区网站建设方案
  • 北京工商局网站怎么做增资wordpress 段间距
  • 设计网站轮廓模板页面优化主要从哪些方面进行
  • 服装设计专业主要学什么seo精灵
  • 如何建设网站论文文献西安网站建设问问q778925409耍強
  • 亚马逊网站开发者平台永登网站设计与建设
  • 东莞规划局官方网站平台期怎么突破
  • 福州市交通建设集团网站太原seo代理计费
  • 企业微网站怎么建设长沙建设教育网站
  • 做业帮网站乐山网站开发公司电话