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

网站开发php和uiwordpress 去掉index.php

网站开发php和ui,wordpress 去掉index.php,网站插件开发,合肥庐阳区建设局网站1.插入排序 2.希尔排序 3.选择排序 4.堆排序 5.冒泡排序 6.快速排序 7.归并排序 1.插入排序 1.1思路 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中#xff0c;直到所有的记录插入完为 止#xff0c;得到一个新的有序序列 1.2实现 //插入排… 1.插入排序 2.希尔排序 3.选择排序 4.堆排序 5.冒泡排序 6.快速排序 7.归并排序 1.插入排序 1.1思路 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中直到所有的记录插入完为 止得到一个新的有序序列   1.2实现  //插入排序 void InsertSort(int* a, int n) {for (int i 0; i n - 1; i){// [0, end] 有序插入tmp依旧有序int end i;int tmp a[i 1];while (end 0){if (a[end] tmp){a[end 1] a[end];--end;}else{break;}}a[end 1] tmp;} }2. 希尔排序 2.1思路 希尔排序法又称缩小增量法。希尔排序法的基本思想是先选定一个整数把待排序文件中所有记录分成个组所有距离为的记录分在同一组内并对每一组内的记录进行排序。然后取重复上述分组和排序的工作。当到达1时所有记录在统一组内排好序。 2.2实现  void ShellSort(int* a, int n) {// 1、gap 1 预排序// 2、gap 1 直接插入排序int gap n;while (gap 1){gap gap / 3 1; // 1可以保证最后一次一定是1// gap gap / 2;for (int i 0; i n - gap; i){int end i;int tmp a[end gap];while (end 0){if (a[end] tmp){a[end gap] a[end];end - gap;}else{break;}}a[end gap] tmp;}} }3. 选择排序 3.1思路 每一次从待排序的数据元素中选出最小或最大的一个元素存放在序列的起始位置直到全部待排序的数据元素排完 3.2实现  void Swap(int* p1, int* p2) {int tmp *p1;*p1 *p2;*p2 tmp; }void SelectSort(int* a, int n) {int begin 0, end n - 1;while (begin end){//找出最大和最小值放在开头和结尾然后beginend--int maxi begin, mini begin;for (int i begin; i end; i){if (a[i] a[maxi]){maxi i;}if (a[i] a[mini]){mini i;}}Swap(a[begin], a[mini]);// 如果maxi和begin重叠修正一下即可//如果maxi和begin重叠可能会重复交换if (begin maxi){maxi mini;}Swap(a[end], a[maxi]);begin;--end;} } 4.堆排序 4.1思路 堆排序 是指利用堆积树堆这种数据结构所设计的一种排序算法它是选择排序的一种。它是通过堆来进行选择数据。需要注意的是排升序要建大堆排降序建小堆。 不知道堆的可以参考 数据结构堆的实现_元清加油的博客-CSDN博客 4.2实现  //向下调整法 void AdjustDown(int* a, int n, int parent) {int child parent * 2 1;while (child n){// 找出小的那个孩子if (child 1 n a[child 1] a[child]){child;}if (a[child] a[parent]){Swap(a[child], a[parent]);parent child;child parent * 2 1;}else{break;}} }// 排升序 void HeapSort(int* a, int n) {// 建大堆for (int i (n - 1 - 1) / 2; i 0; --i){AdjustDown(a, n, i);}//堆删除的思想int end n - 1;while (end 0){Swap(a[0], a[end]);AdjustDown(a, end, 0);--end;} } 5.冒泡排序  5.1思路 冒泡排序非常的简单相邻二个数比较大小然后交换即可 5.2实现  void BubbleSort(int* a, int n) {for (int j 0; j n; j){bool exchange false;for (int i 1; i n - j; i){if (a[i - 1] a[i]){int tmp a[i];a[i] a[i - 1];a[i - 1] tmp;exchange true;}}if (exchange false){break;}} }6.快速排序  6.1霍尔快排法 6.1.1思路 取第一个数为key从左右出发右边找小于key的数左边找大于key的数找到交换。直到左边大于右边就交换key和左边的数 6.1.2 实现 void Swap(int* str1, int* str2) {int temp *str1;*str1 *str2;*str2 temp; } int PartSort1(int* a, int left, int right) {int keyi left;while (left right){// 右边找小while (left right a[right] a[keyi]){--right;}// 左边找大while (left right a[left] a[keyi]){left;}Swap(a[left], a[right]);}Swap(a[keyi], a[left]);return left; }void QuickSort(int* a, int begin, int end) {if (begin end)return;int keyi PartSort2(a, begin, end);// [begin, keyi-1] keyi [keyi1, end]QuickSort(a, begin, keyi - 1);QuickSort(a, keyi 1, end); } int main() {int arr[] { 6,1,2,7,9,3,4,5,10,8 };QuickSort(arr, 0, 9);for (int i 0; i 9; i){printf(%d , arr[i]);}return 0; } 6.2挖坑法  6.2.1思路 取第一个数为key从左右出发右边找小于key的数把他设立为一个坑位左边找大于key的数把他设立为一个新的坑位。直到左边大于右边就交换key和坑的数 6.2.2实现  // 挖坑法 // [left, right] int PartSort2(int* a, int left, int right) {int key a[left];int hole left;while (left right){// 右边找小while (left right a[right] key){--right;}a[hole] a[right];hole right;// 左边找大while (left right a[left] key){left;}a[hole] a[left];hole left;}a[hole] key;return hole; }void QuickSort(int* a, int begin, int end) {if (begin end)return;int keyi PartSort2(a, begin, end);// [begin, keyi-1] keyi [keyi1, end]QuickSort(a, begin, keyi - 1);QuickSort(a, keyi 1, end); } int main() {int arr[] { 6,1,2,7,9,3,4,5,10,8 };QuickSort(arr, 0, 9);for (int i 0; i 9; i){printf(%d , arr[i]);}return 0; } 6.3前后指针法  6.3.1思路 取第一个数为key初始时prev指针指向序列开头cur指针指向prev后一个位置。cur找小与key的数与prev交换 6.3.2实现 // 前后指针法 // [left, right] int PartSort3(int* a, int left, int right) {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; } void QuickSort(int* a, int begin, int end) {if (begin end)return;int keyi PartSort2(a, begin, end);// [begin, keyi-1] keyi [keyi1, end]QuickSort(a, begin, keyi - 1);QuickSort(a, keyi 1, end); } int main() {int arr[] { 6,1,2,7,9,3,4,5,10,8 };QuickSort(arr, 0, 9);for (int i 0; i 9; i){printf(%d , arr[i]);}return 0; } 7.归并排序 7.1思路 归并排序MERGE-SORT是建立在归并操作上的一种有效的排序算法,该算法是采用 分治法Divide andConquer 的一个非常典型的应用。将已有序的子序列合并得到完全有序的序列即先使每个子序列有序再使子序列段间有序。若将两个有序表合并成一个有序表称为二路归并 7.2实现  //归并排序 void _MergeSort(int* a, int begin, int end, int* tmp) {if (begin end)return;int mid (begin end) / 2;// [begin, mid] [mid1, end]_MergeSort(a, begin, mid, tmp);_MergeSort(a, mid 1, end, tmp);// 归并两个区间// ...int begin1 begin, end1 mid;int begin2 mid 1, end2 end;int i begin;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 begin, tmp begin, sizeof(int) * (end - begin 1)); }void MergeSort(int* a, int n) {int* tmp (int*)malloc(sizeof(int) * n);_MergeSort(a, 0, n - 1, tmp);free(tmp); }
http://www.pierceye.com/news/76601/

相关文章:

  • 智能建站系统官网怎样上传图片到wordpress
  • seo 优化是什么wordpress seo优化
  • 北沙滩网站建设公司亚马逊网站类型
  • 如何做一个网站赚钱商标注册证号查询官网
  • 济南万网站建设有限公司地址物流网站系统php源码
  • 3东莞网站建设拼团网站开发
  • 免费永久网站建设江西赣州最新消息
  • 网站开发的基本流程文库合理的网站结构
  • 荷兰网站开发价格网上购物系统概述
  • 呼和浩特市做网站的企业微信卖水果链接网站怎么做
  • 百度网站认证v1国家军事新闻
  • 建设网站坂田杭州网络推广运营公司
  • 深圳建站公司设计深业集团昆明企业制作网站
  • 运河网站制作班级网站空间建设取得效果
  • 网站开发技术服务费合同范本wordpress通过tag获取文章
  • 单页网站怎么做外链益阳市网站建设
  • 门户网站广告是什么手机网站申请
  • 网站开发需要什么技术徐州网站建设方案书
  • 网站开发 怎样做费用结算济南网站建设制作
  • 网站模板欣赏网站开发自学网站
  • 深圳网站的建设wordpress 禁用自动保存
  • 上海站优云网络科技有限公司总结归纳网络营销方式
  • 如何申请建设网站域名网站开发工程师和前端
  • 专业优定软件网站建设无忧网站建设公司
  • 网站开发怎么才能接到私活企业发展历程网站
  • 在线视频下载网站如何做网店美工心得体会
  • 做网站费用分摊入什么科目高新网站建设多少钱
  • 浙江省建设建材工会网站小说网站做封面要钱吗
  • 江西省城乡建设厅建设网站网站建设的可行性分析报告
  • 网站开发技术要学什么wordpress邮箱用不了