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

在哪个网站可以做试卷多作者wordpress插件

在哪个网站可以做试卷,多作者wordpress插件,网站建设新报价图片欣赏,wordpress手机h5主题文章目录 前言一、快速排序非递归二、归并排序五、归并排序非递归总结 前言 C语言数据结构快速排序的非递归、归并排序、归并排序的非递归等的介绍 一、快速排序非递归 快速排序非递归的定义 快速排序非递归#xff0c;需要使用栈来实现。将左右下标分别push到栈中。在栈为… 文章目录 前言一、快速排序非递归二、归并排序五、归并排序非递归总结 前言 C语言数据结构快速排序的非递归、归并排序、归并排序的非递归等的介绍 一、快速排序非递归 快速排序非递归的定义 快速排序非递归需要使用栈来实现。将左右下标分别push到栈中。在栈为空之前循环获取区间的中间值下标并同时将左右区间排序。判断若中间值下标keyi 1小于end则将此区间push到栈中。若begin 小于 中间值下标keyi则将此区间push到栈中。循环直到栈为空。 int PartSort3(int* a, int left, int right) {int keyi left;int prev left;int cur left 1;while (cur right){/*if (a[cur] key){prev;Swap(a[cur], a[prev]);}cur;*/if (a[cur] a[keyi] prev ! cur)Swap(a[cur], a[prev]);cur;}Swap(a[prev], a[keyi]);return prev; }// 快速排序非递归 void QuickSortNonR(int* a, int left, int right) {int* tmp (int*)malloc(sizeof(int) * (right - left 1));ST st;STInit(st);STPush(st, right);STPush(st, left);while (!STEmpty(st)){int begin STTop(st);STPop(st);int end STTop(st);STPop(st);int keyi PartSort3(a, begin, end);if (keyi 1 end){STPush(st, end);STPush(st, keyi - 1);}if (begin keyi - 1){STPush(st, keyi - 1);STPush(st, begin);}}STDestroy(st); }其中PartSort3函数是快速排序快慢指针的单趟排序。 快速排序非递归测试 void TestQuickSortNonR() {int a[] { 9, 7, 6 ,4 ,8 ,3 ,5 ,1 ,2, 0 };PrintArray(a, sizeof(a) / sizeof(a[0]));QuickSortNonR(a, 0, sizeof(a) / sizeof(a[0]) - 1);PrintArray(a, sizeof(a) / sizeof(a[0])); }效果如下 二、归并排序 归并排序定义 直接将区间拆分成左右区间。左右区间分别递归直到单个数字并在返回后归并左右区间到一个临时的数组中。然后将临时数组中的数字memcpy拷贝到原数组中。 // 归并排序 void _MergeSort(int* a, int left, int right, int* tmp) {if (left right)return;int midi left (right - left) / 2;int begin1 left, end1 midi;int begin2 midi 1, end2 right;_MergeSort(a, begin1, end1, tmp);_MergeSort(a, begin2, end2, tmp);int i left;while (begin1 end1 begin2 end2){if (a[begin1] a[begin2]){tmp[i] a[begin1];}else{tmp[i] a[begin2];}}while (begin1 end1){tmp[i] a[begin1];}while (begin2 end2){tmp[i] a[begin2];}memcpy(a left, tmp left, sizeof(int) * (right - left 1));}void MergeSort(int* a, int n) {int* tmp (int*)malloc(sizeof(int) * n);if (tmp NULL){perror(MergeSort malloc);return;}int left 0;int right n - 1;_MergeSort(a, left, right, tmp);free(tmp); } 归并排序测试 void TestMergeSort() {int a[] { 9, 7, 6 , 6, 4,4 ,8 ,3 ,5 ,1 ,2, 0, 5 };PrintArray(a, sizeof(a) / sizeof(a[0]));MergeSort(a, sizeof(a) / sizeof(a[0]));PrintArray(a, sizeof(a) / sizeof(a[0])); }效果如下 五、归并排序非递归 归并排序非递归定义 归并一部分拷贝一部分 void MergeSortNonR(int* a, int n) {int* tmp (int*)malloc(sizeof(int) * n);int gap 1;while (gap n){int i 0;for (i 0; i n; i 2 * gap){int begin1 i, end1 i gap - 1;int begin2 i gap, end2 i 2 * gap - 1;if (end1 n || begin2 n){break;}if (end2 n){end2 n - 1;}int j i;while (begin1 end1 begin2 end2){if (a[begin1] a[begin2]){tmp[j] a[begin1];}else{tmp[j] a[begin2];}}while (begin1 end1){tmp[j] a[begin1];}while (begin2 end2){tmp[j] a[begin2];}memcpy(a i, tmp i, sizeof(int) * (end2 - i 1));}gap * 2;}free(tmp);tmp NULL; }归并排序非递归测试 void TestMergeSortNonR() {int a[] { 9, 7, 6 , 6, 4,4 ,8 ,3 ,5 ,1 ,2, 0, 5 };PrintArray(a, sizeof(a) / sizeof(a[0]));MergeSortNonR(a, sizeof(a) / sizeof(a[0]));PrintArray(a, sizeof(a) / sizeof(a[0])); }效果如下 总结 C语言数据结构快速排序的非递归、归并排序、归并排序的非递归等的介绍
http://www.hkea.cn/news/14307741/

相关文章:

  • 镇江智能网站建设哪家好程序员自己做网站赚钱
  • 公司做企业网站深圳有哪些外贸公司
  • 专业网站建设必要性今天特大军事新闻事件
  • 邢台建设局网站上中标公示查询德阳手机网站建设
  • 网站首眉怎么做seo免费网站建设
  • 没有网站怎么做网络推广帮非法集资公司做网站违法吗
  • 地图网站抓取石景山富阳网站建设
  • 大学网站建设管理办法网站后台 全局配置
  • 专业的公司网站开发教育培训网站
  • 网站建设七大步骤怎么给网站做超链接
  • 白银市住房与建设局网站网页制作官方网站
  • 网站空间与域名的关系仿腾讯视频网站源码
  • 商丘市做网站的公司建立网站大概投入
  • 做直播网站要多少钱短信平台
  • 怎么做一淘宝客网站wordpress完全开源吗
  • 做网站选哪家公司好安徽建网站
  • 网站建设人员配置学电子商务有前途吗
  • 可以左右滑动的网站网站建设与管理专业题目
  • 网站开发摊销期怎样不用代码就能建网站
  • 教育培训网站设计国家企业信息公示系统查询入口
  • 北京建设交易工程信息网站网站项目进度
  • 十大搜索引擎网站做公司年报网站登录密码是什么
  • 企业网站的宣传功能体现在哪里长治网站设计制作网站
  • 网站开发前台网站开发哪个好
  • 英文 edm营销 的网站 与 工具北京做app的公司有哪些
  • 东阳实惠营销型网站建设厂家app制作教学视频
  • 网站 入站规则 设置广告制作费和广告服务费区别
  • 做pc端网站教程搜索引擎不收录网站
  • 常见网站颜色搭配企业管理咨询心得体会
  • 网站建设专题页那个做网站好