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

蓝色风格企业网站模板wordpress代码高亮主题

蓝色风格企业网站模板,wordpress代码高亮主题,什么专业的会做网站,乐清网络问效平台目录 OJ链接 一、直接插入排序 二、希尔排序 三、直接选择排序 常规#xff1a; 第二种#xff1a; 四、 堆排序 五、冒泡排序 六、快速排序 常规#xff1a; 三路划分优化效率 七、归并排序 八、计数排序 OJ链接 ​ 一、直接插入排序 class Solution { pub…  目录 OJ链接 一、直接插入排序 二、希尔排序 三、直接选择排序 常规  第二种 四、 堆排序 五、冒泡排序 六、快速排序 常规 三路划分优化效率 七、归并排序 八、计数排序 OJ链接 ​  一、直接插入排序 class Solution { public:vectorint sortArray(vectorint nums) {for(int i0;inums.size()-1;i){int endi;int tmpnums[i1];while(end0){if(nums[end]tmp){nums[end1]nums[end];--end;}elsebreak;}nums[end1]tmp;}return nums;} }; ​ 二、希尔排序 class Solution { public:vectorint sortArray(vectorint nums) {int gapnums.size();while(gap1){gapgap/31;for(int i0;inums.size()-gap;i){int endi;int tmpnums[endgap];while(end0){if(nums[end]tmp){nums[endgap]nums[end];end-gap;}elsebreak;}nums[endgap]tmp;}}return nums;} }; ​ 三、直接选择排序 常规  class Solution { public:vectorint sortArray(vectorint nums) {int i,j,minIndex,temp;for(i0;inums.size()-1;i){minIndexi;for(ji1;jnums.size();j){if(nums[j]nums[minIndex])minIndexj;}tempnums[i];nums[i]nums[minIndex];nums[minIndex]temp;}return nums;} }; ​  第二种 class Solution { public:vectorint sortArray(vectorint nums) {int begin0,endnums.size()-1;while(beginend){int maxibegin,minibegin;for(int ibegin;iend;i){if(nums[i]nums[maxi])maxii;if(nums[i]nums[mini])minii;}swap(nums[begin],nums[mini]);if(beginmaxi)maximini;swap(nums[maxi],nums[end]);begin;--end;}return nums;} }; ​ 四、 堆排序 class Solution { public:void AdjustDown(vectorint a,int n,int parent){int childparent*21;while(childn){if(child1na[child1]a[child])child;if(a[child]a[parent]){swap(a[child],a[parent]);parentchild;childparent*21;}else{break;}}}vectorint sortArray(vectorint nums) {for(int i(nums.size()-1-1);i0;i--){AdjustDown(nums,nums.size(),i);}int endnums.size()-1;while(end0){swap(nums[0],nums[end]);AdjustDown(nums,end,0);--end;}return nums;} }; ​ 五、冒泡排序 class Solution { public:vectorint sortArray(vectorint nums) {for (int j 0; j nums.size(); j){bool exchange false;for (int i 1; i nums.size() - j; i){if (nums[i - 1] nums[i]){int tmp nums[i];nums[i] nums[i - 1];nums[i - 1] tmp;exchange true;}}if (exchange false){break;}}return nums;} }; ​ 六、快速排序 常规 class Solution { public:int GetMidIndex(vectorint a, int left, int right){int mid (left right) 1;if (a[left] a[mid]){if (a[mid] a[right]){return mid;}else if (a[left] a[right]){return right;}else{return left;}}else // a[left] a[mid]{if (a[mid] a[right]){return mid;}else if (a[left] a[right]){return right;}else{return left;}}}void QuickSort(vectorint a, int begin, int end){if (begin end)return;int keyi PartSort3(a, begin, end);QuickSort(a, begin, keyi - 1);QuickSort(a, keyi 1, end);}int PartSort3(vectorint a, int left, int right){int midi GetMidIndex(a, left, right);swap(a[left], a[midi]);int prev left;int cur left 1;int keyi left;while (cur right){if (a[cur] a[keyi] prev ! cur){swap(a[prev], a[cur]);}cur;}swap(a[prev], a[keyi]);keyi prev;return keyi;}vectorint sortArray(vectorint nums) {QuickSort(nums,0,nums.size()-1);return nums;} }; ​  三路划分优化效率 ​  class Solution { public:int GetMidIndex(vectorint a, int left, int right){int mid left (rand()%(right-left));if (a[left] a[mid]){if (a[mid] a[right]){return mid;}else if (a[left] a[right]){return right;}else{return left;}}else // a[left] a[mid]{if (a[mid] a[right]){return mid;}else if (a[left] a[right]){return right;}else{return left;}}}void QuickSort(vectorint a, int begin, int end){if (begin end)return;int left begin;int right end;int cur left 1;int midi GetMidIndex(a, left, right);swap(a[left], a[midi]);int key a[left];while (cur right){if (a[cur] key){swap(a[left], a[cur]);left;cur;}else if (a[cur] key){swap(a[right], a[cur]);--right;}else{cur;}}QuickSort(a, begin, left - 1);QuickSort(a, right 1, end);}vectorint sortArray(vectorint nums){srand(time(0));QuickSort(nums, 0, nums.size() - 1);return nums;} }; GetMidIndex这个方法用于在快速排序的过程中选择一个基准元素。它首先随机选择一个索引mid然后比较数组a在left、mid和right这三个位置的元素返回这三个元素中的中位数的索引。这种方式可以有效地避免在处理近乎有序的数组时快速排序退化为O(n^2)的情况。 QuickSort这是快速排序的主要方法。它首先调用GetMidIndex方法获取基准元素的索引然后将基准元素与数组的第一个元素交换位置接着遍历数组将小于基准的元素放到左边大于基准的元素放到右边等于基准的元素不动。最后递归地对基准元素左边和右边的子数组进行同样的操作。  sortArray这是对外的接口方法它首先初始化随机数种子然后调用QuickSort方法对输入的数组nums进行排序最后返回排序后的数组。 这段代码的主要优点是它使用了随机化的快速排序算法可以在平均情况下达到O(n log n)的时间复杂度而且它的空间复杂度为O(log n)因为它只需要递归调用栈的空间。 ​ 七、归并排序 class Solution { public:void InsertSort(vectorint a, int begin, int end){for(int ibegin1; iend; i){int tmpa[i];int ji;while(jbegin a[j-1]tmp){a[j]a[j-1];j--;}a[j]tmp;}}void _MergeSort(vectorint a,int begin,int end,vectorint tmp){if (begin end) {return;}if (end - begin 1 10){InsertSort(a, begin, end);return;}int mid(beginend)/2;_MergeSort(a,begin,mid,tmp);_MergeSort(a,mid1,end,tmp);int begin1begin,end1mid;int begin2mid1,end2end;int ibegin;while(begin1end1begin2end2){if(a[begin1]a[begin2])tmp[i]a[begin1];elsetmp[i]a[begin2];}while(begin1end1)tmp[i]a[begin1];while(begin2end2)tmp[i]a[begin2];for (i begin; i end; i){a[i] tmp[i];}}vectorint sortArray(vectorint nums){vectorint tmp(nums.size());_MergeSort(nums,0,nums.size()-1,tmp);return nums;} }; ​ 八、计数排序 class Solution { public:vectorint sortArray(vectorint nums){// 找到数组中的最大值和最小值int minVal INT_MAX, maxVal INT_MIN;for (int num : nums) {minVal min(minVal, num);maxVal max(maxVal, num);}// 统计每个元素出现的次数vectorint count(maxVal - minVal 1, 0);for (int num : nums) {count[num - minVal];}// 根据统计结果重新构造排序后的数组vectorint sortedArray;for (int i 0; i count.size(); i) {for (int j 0; j count[i]; j) {sortedArray.push_back(i minVal);}}return sortedArray;} }; 当我们使用计数排序算法时我们首先需要找到待排序数组中的最大值和最小值。这是为了确定计数数组的大小以及后续构造排序后的数组时的索引范围。接下来我们创建一个计数数组 count其大小为 maxVal - minVal 1其中 maxVal 是数组中的最大值minVal 是数组中的最小值。计数数组用于统计每个元素出现的次数。然后我们遍历待排序数组 nums对于每个元素 num我们将其在计数数组中对应的位置的值加1表示该元素出现了一次。接着我们根据统计结果重新构造排序后的数组 sortedArray。我们从计数数组的第一个位置开始遍历对于每个计数数组的索引 i我们将其对应的值 count[i] 表示的元素值即 i minVal按照出现次数依次添加到 sortedArray 中。最后我们返回排序后的数组 sortedArray。 计数排序算法的时间复杂度为 O(nk)其中 n 是待排序数组的长度k 是待排序元素的范围。由于计数排序是一种稳定的排序算法它可以在线性时间内完成排序。
http://www.pierceye.com/news/35339/

相关文章:

  • 网站被黑咋样的内蒙古建设厅网站查询
  • 网站设计的工作内容栖霞网站建设
  • 网站建设网站网页模板广阳网站制作
  • 手机 网站内 搜索标签云 wordpress
  • 新鸿儒网站建设跨境c2c的平台有哪些
  • 服务哪家好网站制作数据库调用做wordpress
  • 对建设网站未来发展的建议优质手机网站建设
  • wordpress 播放列表小程序排名优化
  • 网站建设空间大小乐清门户网站建设
  • 网站建设网站图片放哪个棠下手机网站建设报价
  • 网站维护怎么样怎么做带后台的网站
  • 分销商城网站建设网站链接交易
  • 网站加密教学管理信息服务平台
  • 网站进度条代码百度网络营销推广
  • 北碚集团网站建设html制作新闻信息展示页面
  • 云南网站建设设计手机wordpress主题
  • 怎么做网站在网上能搜到你wordpress管理员密码忘记
  • 什么网站专做二手名表新媒体营销策略有哪些
  • 专门做网站的公司叫什么西安网站建设公司西安网络公司
  • 广州网站建设藤虎江苏网站建设哪家好
  • 网站搭建东莞网站放自己服务器备案
  • 三门峡网站制作公司企业画册印刷
  • 阜宁做网站的公司本地建设网站软件
  • 营销型网站建设实战nginx网站开发
  • wap手机网站分享代码鞍山网站页设计制作
  • wordpress如何从网站登录后台百度aipage智能建站
  • 网站建设精美模板网站关于 模板
  • 龙岩网站建设费用广州营销网站建设公司哪家好
  • 韦博在上面做课件的网站叫什么顺义重庆网站建设
  • wordpress电影下载站主题网站开发工具有哪些