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

网站美工做图推荐网站建设考察报告

网站美工做图推荐,网站建设考察报告,学编程要会英语吗,做网站用什么语言高效归并排序是一种遵循分而治之方法的排序算法。它的工作原理是递归地将输入数组划分为较小的子数组并对这些子数组进行排序#xff0c;然后将它们合并在一起以获得排序后的数组。 简单来说#xff0c;归并排序的过程就是将数组分成两半#xff0c;对每一半进行排序#xff0c…        归并排序是一种遵循分而治之方法的排序算法。它的工作原理是递归地将输入数组划分为较小的子数组并对这些子数组进行排序然后将它们合并在一起以获得排序后的数组。 简单来说归并排序的过程就是将数组分成两半对每一半进行排序然后将已排序的两半合并在一起。重复这个过程直到整个数组排序完毕。 归并排序算法 归并排序是如何工作的         归并排序是一种流行的排序算法以其高效和稳定而闻名。它遵循分而治之的方法对给定的元素数组进行排序。 以下是合并排序如何工作的分步说明         1、划分递归地将列表或数组划分为两半直到不能再划分为止。         2、征服使用合并排序算法对每个子数组进行单独排序。         3、合并已排序的子数组按排序顺序合并在一起。该过程将继续直到两个子数组中的所有元素都已合并。 归并排序示意图 让我们使用归并排序对数组或列表[38, 27, 43, 10]进行排序  让我们看看上面例子的工作原理划分         [38, 27, 43, 10]分为[38, 27 ] 和[43, 10]。         [38, 27]分为[38]和[27]。         [43, 10]分为[43]和[10]。 征服         [38]已经排序。         [27]已经排序。         [43]已经排序。         [10]已经排序。 合并         合并[38]和[27]得到[27, 38]。         合并[43]和[10]得到[10,43]。         合并[27, 38]和[10,43]得到最终的排序列表[10, 27, 38, 43] 因此排序列表为[10, 27, 38, 43]。 归并排序的实现 // C program for Merge Sort #include bits/stdc.h using namespace std; // Merges two subarrays of array[]. // First subarray is arr[begin..mid] // Second subarray is arr[mid1..end] void merge(int array[], int const left, int const mid,            int const right) {     int const subArrayOne mid - left 1;     int const subArrayTwo right - mid; // Create temp arrays     auto *leftArray new int[subArrayOne],          *rightArray new int[subArrayTwo]; // Copy data to temp arrays leftArray[] and rightArray[]     for (auto i 0; i subArrayOne; i)         leftArray[i] array[left i];     for (auto j 0; j subArrayTwo; j)         rightArray[j] array[mid 1 j]; auto indexOfSubArrayOne 0, indexOfSubArrayTwo 0;     int indexOfMergedArray left; // Merge the temp arrays back into array[left..right]     while (indexOfSubArrayOne subArrayOne             indexOfSubArrayTwo subArrayTwo) {         if (leftArray[indexOfSubArrayOne]             rightArray[indexOfSubArrayTwo]) {             array[indexOfMergedArray]                 leftArray[indexOfSubArrayOne];             indexOfSubArrayOne;         }         else {             array[indexOfMergedArray]                 rightArray[indexOfSubArrayTwo];             indexOfSubArrayTwo;         }         indexOfMergedArray;     } // Copy the remaining elements of     // left[], if there are any     while (indexOfSubArrayOne subArrayOne) {         array[indexOfMergedArray]             leftArray[indexOfSubArrayOne];         indexOfSubArrayOne;         indexOfMergedArray;     } // Copy the remaining elements of     // right[], if there are any     while (indexOfSubArrayTwo subArrayTwo) {         array[indexOfMergedArray]             rightArray[indexOfSubArrayTwo];         indexOfSubArrayTwo;         indexOfMergedArray;     }     delete[] leftArray;     delete[] rightArray; } // begin is for left index and end is right index // of the sub-array of arr to be sorted void mergeSort(int array[], int const begin, int const end) {     if (begin end)         return; int mid begin (end - begin) / 2;     mergeSort(array, begin, mid);     mergeSort(array, mid 1, end);     merge(array, begin, mid, end); } // UTILITY FUNCTIONS // Function to print an array void printArray(int A[], int size) {     for (int i 0; i size; i)         cout A[i] ;     cout endl; } // Driver code int main() {     int arr[] { 12, 11, 13, 5, 6, 7 };     int arr_size sizeof(arr) / sizeof(arr[0]); cout Given array is \n;     printArray(arr, arr_size); mergeSort(arr, 0, arr_size - 1); cout \nSorted array is \n;     printArray(arr, arr_size);     return 0; } // This code is contributed by Mayank Tyagi // This code was revised by Joshua Estes 输出 给定数组是 12 11 13 5 6 7 排序后的数组是 5 6 7 11 12 13 归并排序的复杂度分析 时间复杂度最佳情况 O(n log n)当数组已经排序或接近排序时。平均情况 O(n log n)当数组随机排序时。最坏情况 O(n log n)当数组按相反顺序排序时。空间复杂度 O(n)合并时使用的临时数组需要额外的空间。 归并排序的优点稳定性归并排序是一种稳定的排序算法这意味着它保持输入数组中相等元素的相对顺序。保证最坏情况下的性能归并排序的最坏情况时间复杂度为O(N logN)这意味着即使在大型数据集上它也能表现良好。易于实现分而治之的方法很简单。 归并排序的缺点空间复杂度归并排序在排序过程中需要额外的内存来存储合并后的子数组。 非就地合并排序不是就地排序算法这意味着它需要额外的内存来存储排序后的数据。这对于关注内存使用的应用程序来说可能是一个缺点。 归并排序的应用 对大型数据集进行排序 外部排序当数据集太大而无法容纳在内存中时 反转计数计算数组中反转的次数 查找数组的中位数
http://www.dnsts.com.cn/news/58250.html

相关文章:

  • 物流网站开题报告书店手机网站模板
  • 免费开源门户网站系统怎么编辑网站内容
  • 工艺品做网站wordpress美化文章标题
  • 老年夫妻做爰视频网站婚恋网站的渠道网络建设
  • 企业网站建设实训报告规划营销型网站结构
  • 网站建设公司人员组成信息化网站建设有什么用
  • 学校网站建设实施方案文化建设的重要性和意义
  • 南宁网站建设升上去页面优化主要从哪些方面进行
  • 成都网站建设推广在线咨询wordpress分页导航菜单
  • 网站什么时候备案好手机版网站开发实例
  • 做公司网站需要什么资料华为公司网站建设方案模板下载
  • 长春网站推广网诚传媒如何为旅游网站店铺做推广营销
  • 专业微网站建设公司网站建设相关问题
  • 网站支付界面怎么做用什么自己做网站
  • 如何设计网站的链接互联网外包公司有哪些
  • 360网站建设网站备案 和 icp
  • 网站推广 软件广州网站建设哪个公司做得好些
  • 浙江东阳市网站建设公司html网站建设实录
  • 两个域名指向同一个网站怎么做北京市建设工程
  • 上海城市建设大学网站2017企业网站建设方案
  • 网站自动弹窗代码wordpress 例子
  • 苏州哪个网站建设最好网站教学视频
  • 光谷网站建设wordpress grace主题
  • 网站经营网络备案信息wordpress后车头
  • dede网站源码 如何修改惠州seo网站排名
  • 建网站-湛江市网站建设颜色搭配
  • 青岛建设交易中心网站环保企业的网站怎么做
  • 电商网站开发 文献综述做游戏模板下载网站有哪些
  • 网站发帖百度收录市政公司宣传册设计样本
  • 自己做网站域名国内用什么做网站