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

做网站学哪些语言wordpress订单邮件内容修改

做网站学哪些语言,wordpress订单邮件内容修改,专业团队优质网站建设方案,仿淘宝网站源码+php归并排序(Merge Sort) 1. 概述 归并排序是一种基于分治思想的排序算法。它通过递归的方式,将待排序的数组不断分割成两半,直到每个子数组只剩一个元素(自然排序);然后,将这些子数组…

归并排序(Merge Sort)

1. 概述

归并排序是一种基于分治思想的排序算法。它通过递归的方式,将待排序的数组不断分割成两半,直到每个子数组只剩一个元素(自然排序);然后,将这些子数组逐步合并成有序的数组。

2. 主要思想

  • 分解(Divide):将数组分成左右两个子数组。

  • 解决(Conquer):递归对左右子数组排序。

  • 合并(Combine):合并两个已排序的子数组,得到一个大的有序数组。

3.递归实现的归并排序 

#include <stdio.h>
#include <stdlib.h>// 合并两个有序子数组
void merge(int* arr, int l, int m, int r) {int i = l, j = m + 1, k = 0;int size = r - l + 1;int* temp = (int*)malloc(sizeof(int) * size);while (i <= m && j <= r) {if (arr[i] <= arr[j]) {temp[k++] = arr[i++];} else {temp[k++] = arr[j++];}}// 复制剩余元素while (i <= m) {temp[k++] = arr[i++];}while (j <= r) {temp[k++] = arr[j++];}// Copy back到原数组for (int p = 0; p < size; p++) {arr[l + p] = temp[p];}free(temp);
}// 归并排序递归实现
void mergeSort(int* arr, int l, int r) {if (l >= r) return;int m = l + (r - l) / 2;mergeSort(arr, l, m);mergeSort(arr, m + 1, r);merge(arr, l, m, r);
}int main() {int arr[] = {8, 4, 5, 7, 1, 3, 2, 6};int size = sizeof(arr) / sizeof(arr[0]);mergeSort(arr, 0, size - 1);for (int i=0; i<size; i++) {printf("%d ", arr[i]);}printf("\n");return 0;
}

 4.非递归(迭代)实现的归并排序

#include <stdio.h>
#include <stdlib.h>void merge(int* arr, int l, int m, int r) {int i = l, j = m + 1, k = 0;int size = r - l + 1;int* temp = (int*)malloc(sizeof(int) * size);while (i <= m && j <= r) {if (arr[i] <= arr[j]) {temp[k++] = arr[i++];} else {temp[k++] = arr[j++];}}while (i <= m) temp[k++] = arr[i++];while (j <= r) temp[k++] = arr[j++];for (int p = 0; p < size; p++) {arr[l + p] = temp[p];}free(temp);
}void mergeSortIterative(int* arr, int n) {for (int curr_size = 1; curr_size < n; curr_size *= 2) {for (int left_start = 0; left_start < n - 1; left_start += 2 * curr_size) {int mid = left_start + curr_size - 1;int right_end = (left_start + 2 * curr_size - 1) < n -1 ? (left_start + 2 * curr_size -1) : (n -1);if (mid < right_end) {merge(arr, left_start, mid, right_end);}}}
}int main() {int arr[] = {8, 4, 5, 7, 1, 3, 2, 6};int size = sizeof(arr) / sizeof(arr[0]);mergeSortIterative(arr, size);for (int i=0; i<size; i++) {printf("%d ", arr[i]);}printf("\n");return 0;
}

希尔排序(Shell Sort)

1. 概述

希尔排序是一种基于插入排序的改进版本,由Donald Shell于1959年提出。它利用“比较和交换”的思想,对数据进行“分组排序”,逐步缩小分组间的间隔(步长)最终实现整体排序。

2. 核心思想

  • 初始时,将整个数组按一定间隔(步长)划分成若干子数组,对每个子数组进行插入排序。

  • 随着算法进行,逐渐减小间隔,经过多轮排序,最终间隔缩减为1,完成整体排序。

  • 当步长为1时,实际上执行一次插入排序,确保整个数组有序。

3. 步骤

  1. 选择一个初始的间隔(通常为数组长度的一半)。

  2. 对所有间隔为gap的子数组执行插入排序。

  3. 缩小gap。

  4. 重复步骤2和3,直到gap为1,即对整个数组执行一次插入排序。

  5. 最终,数组全部有序。

#include <stdio.h>void shellSort(int arr[], int n) {// 选择初始间隔(gap)for (int gap = n / 2; gap > 0; gap /= 2) {// 对每个gap的子数组执行插入排序for (int i = gap; i < n; i++) {int temp = arr[i];int j;// 插入排序(在gap间隔内)for (j = i; j >= gap && arr[j - gap] > temp; j -= gap) {arr[j] = arr[j - gap];}arr[j] = temp;}}
}int main() {int arr[] = {8, 4, 5, 7, 1, 3, 2, 6};int size = sizeof(arr) / sizeof(arr[0]);printf("排序前:\n");for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}printf("\n");shellSort(arr, size);printf("排序后:\n");for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}printf("\n");return 0;
}

 


文章转载自:

http://r6SRyyUC.mkczm.cn
http://flJAMfPU.mkczm.cn
http://t7vuroWS.mkczm.cn
http://uGR03yFL.mkczm.cn
http://AYjaf6g0.mkczm.cn
http://yyi1cAR5.mkczm.cn
http://1F5ai37y.mkczm.cn
http://dE2rdNhA.mkczm.cn
http://EWZUXF95.mkczm.cn
http://znP8xFVn.mkczm.cn
http://nB7RYaBX.mkczm.cn
http://WdGQiyw9.mkczm.cn
http://zgYXRApY.mkczm.cn
http://Uai15oNy.mkczm.cn
http://XA3YGNkV.mkczm.cn
http://DrHVgs4L.mkczm.cn
http://P4bOsU7G.mkczm.cn
http://N1j7cQdp.mkczm.cn
http://9laAffqt.mkczm.cn
http://q1F2cvk9.mkczm.cn
http://kQMYG2vr.mkczm.cn
http://hRzNLtUO.mkczm.cn
http://85tYfwry.mkczm.cn
http://wuc8lyX0.mkczm.cn
http://X2dzZl2v.mkczm.cn
http://OS6mPfsJ.mkczm.cn
http://DOOppX1K.mkczm.cn
http://Rga9GsO2.mkczm.cn
http://fEuxeAL0.mkczm.cn
http://EOQ1mf6U.mkczm.cn
http://www.dtcms.com/wzjs/758726.html

相关文章:

  • 网站前台首页无法显示德州宁津建设局网站
  • 网站域名登录包小盒设计网站官网
  • 用wordpress建站多少钱贵阳网站制作
  • 珠海网站建设案例手机商城系统制作
  • 建设银行签名通在网站哪里下载龙口网站建设价格
  • 做理财的网站焦作建设厅网站
  • 网站开发凭证做什么科目p2p网站开发用什么平台
  • 山东咕果做网站怎么样360建筑网官方网站
  • 寿县住房与城乡建设局网站软件技术主要课程
  • 做网站推广的价格做网站最好的
  • 新手做网站教程泰安58同城二手房出售信息
  • 张家口住房和城乡建设厅网站网站建设研究的意义
  • 网站建设公司的专业度该怎么去看注册小程序账号
  • 安全证四川省建设厅官方网站wordpress崩溃
  • 湖北网站建设模板下载android开发工具箱
  • 金融培训网站源码免费微网站建站系统源码
  • 六里桥做网站公司购物 网站建设的市场分析
  • 网站建设后期怎样维护网站水军怎么做
  • 搭建织梦网站视频教程品牌的手机网站制作
  • 嘉兴市城乡与建设局网站搜狐焦点石家庄房产网
  • 咋样查看网站用什么编程语言做的企业网页设计模板图片
  • 网站图片处理方案有多少网站可以推广业务
  • 嘉定区整站seo十大排名手机网站cms
  • 画出网站和目录结构图自己做的工艺品在哪个网站上可以卖
  • 太原网站建设平台温州网站建设联系电话
  • 油漆网站设计wordpress 输出 文章时间
  • 网站wordpress入侵网络优化公司排名
  • 免费网站设计素材做内贸的什么网站效果好
  • 做网站架构需要注意什么网站策划选题
  • 广东贸易网站开发足球比分网站建设