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

东莞企业制作网站网站的seo如何优化

东莞企业制作网站,网站的seo如何优化,深圳高端设计公司名单,宜城网站建设哪家好题目:C语言实现排序算法 冒泡排序 思路#xff1a; 依次比较相邻的元素#xff0c;如果顺序不对则交换#xff0c;直到整个数组有序。 实现代码#xff1a; #include stdio.hvoid bubbleSort(int arr[], int n) {for (int i 0; i n - 1; i) {for (int j…题目:C语言实现排序算法 冒泡排序 思路 依次比较相邻的元素如果顺序不对则交换直到整个数组有序。 实现代码 #include stdio.hvoid bubbleSort(int arr[], int n) {for (int i 0; i n - 1; i) {for (int j 0; j n - i - 1; j) {if (arr[j] arr[j 1]) {int temp arr[j];arr[j] arr[j 1];arr[j 1] temp;}}} }int main() {int arr[] {64, 34, 25, 12, 22, 11, 90, 87, 10, 5};int n sizeof(arr) / sizeof(arr[0]);bubbleSort(arr, n);printf(排序后的数组: );for (int i 0; i n; i)printf(%d , arr[i]);return 0; }优缺点 优点实现简单。缺点对于大规模数据排序效率低时间复杂度为O(n^2)。 选择排序 思路 从未排序的部分选择最小元素与未排序部分的第一个元素交换位置。重复这个过程直到整个数组有序。 实现代码 #include stdio.hvoid selectionSort(int arr[], int n) {int i, j, min_idx, temp;for (i 0; i n - 1; i) {min_idx i;for (j i 1; j n; j)if (arr[j] arr[min_idx])min_idx j;temp arr[min_idx];arr[min_idx] arr[i];arr[i] temp;} }int main() {int arr[] {64, 34, 25, 12, 22, 11, 90, 87, 10, 5};int n sizeof(arr) / sizeof(arr[0]);selectionSort(arr, n);printf(排序后的数组: );for (int i 0; i n; i)printf(%d , arr[i]);return 0; }优缺点 优点实现简单。缺点对于大规模数据排序效率低时间复杂度为O(n^2)。 插入排序 思路 将数组分为已排序和未排序两部分逐步将未排序的元素插入到已排序的部分直到整个数组有序。 实现代码 #include stdio.hvoid insertionSort(int arr[], int n) {int i, key, j;for (i 1; i n; i) {key arr[i];j i - 1;while (j 0 arr[j] key) {arr[j 1] arr[j];j j - 1;}arr[j 1] key;} }int main() {int arr[] {64, 34, 25, 12, 22, 11, 90, 87, 10, 5};int n sizeof(arr) / sizeof(arr[0]);insertionSort(arr, n);printf(排序后的数组: );for (int i 0; i n; i)printf(%d , arr[i]);return 0; }优缺点 优点简单对小规模数据或接近有序的数据排序效率高。缺点对于大规模数据排序效率低时间复杂度为O(n^2)。 归并排序 思路 将数组递归分成子数组然后合并这些子数组合并过程中保持有序。 实现代码 #include stdio.h #include stdlib.hvoid merge(int arr[], int left, int middle, int right) {int n1 middle - left 1;int n2 right - middle;int L[n1], R[n2];for (int i 0; i n1; i)L[i] arr[left i];for (int j 0; j n2; j)R[j] arr[middle 1 j];int i 0, j 0, k left;while (i n1 j n2) {if (L[i] R[j]) {arr[k] L[i];i;} else {arr[k] R[j];j;}k;}while (i n1) {arr[k] L[i];i;k;}while (j n2) {arr[k] R[j];j;k;} }void mergeSort(int arr[], int left, int right) {if (left right) {int middle left (right - left) / 2;mergeSort(arr, left, middle);mergeSort(arr, middle 1, right);merge(arr, left, middle, right);} }int main() {int arr[] {64, 34, 25, 12, 22, 11, 90, 87, 10, 5};int n sizeof(arr) / sizeof(arr[0]);mergeSort(arr, 0, n - 1);printf(排序后的数组: );for (int i 0; i n; i)printf(%d , arr[i]);return 0; }优缺点 优点稳定时间复杂度为O(n log n)。缺点需要额外的内存空间。 快速排序 思路 选择一个基准元素将数组分为小于基准和大于基准的两部分然后递归地对这两部分进行排序。 实现代码 #include stdio.hvoid swap(int* a, int* b) {int t *a;*a *b;*b t; }int partition(int arr[], int low, int high) {int pivot arr[high];int i low - 1;for (int j low; j high; j) {if (arr[j] pivot) {i;swap(arr[i], arr[j]);}}swap(arr[i 1], arr[high]);return i 1; }void quickSort(int arr[], int low, int high) {if (low high) {int pi partition(arr, low, high);quickSort(arr, low, pi - 1);quickSort(arr, pi 1, high);} }int main() {int arr[] {64, 34, 25, 12, 22, 11, 90, 87, 10, 5};int n sizeof(arr) / sizeof(arr[0]);quickSort(arr, 0, n - 1);printf(排序后的数组: );for (int i 0; i n; i)printf(%d , arr[i]);return 0; }优缺点 优点效率高时间复杂度平均情况下为O(n log n)。缺点不稳定。 希尔排序 思路 将数组按一定间隔分组对每组使用插入排序。缩小间隔重复上述步骤直到间隔为1进行最后一次插入排序。 实现代码 #include stdio.hvoid shellSort(int arr[], int n) {for (int gap n / 2; gap 0; gap / 2) {for (int i gap; i n; i) {int temp arr[i];int j;for (j i; j gap arr[j - gap] temp; j - gap)arr[j] arr[j - gap];arr[j] temp;}} }int main() {int arr[] {64, 34, 25, 12, 22, 11, 90, 87, 10, 5};int n sizeof(arr) / sizeof(arr[0]);shellSort(arr, n);printf(排序后的数组: );for (int i 0; i n; i)printf(%d , arr[i]);return 0; }优缺点 优点相对于简单排序算法有较高的效率时间复杂度受增量序列的影响。缺点不稳定。 堆排序 思路 构建最大堆或最小堆将堆顶元素与最后一个元素交换然后将堆的大小减一并重新维护堆的性质。重复此过程直到堆为空得到有序数组。 实现代码 #include stdio.hvoid heapify(int arr[], int n, int i) {int largest i;int left 2 * i 1;int right 2 * i 2;if (left n arr[left] arr[largest])largest left;if (right n arr[right] arr[largest])largest right;if (largest ! i) {int temp arr[i];arr[i] arr[largest];arr[largest] temp;heapify(arr, n, largest);} }void heapSort(int arr[], int n) {for (int i n / 2 - 1; i 0; i--)heapify(arr, n, i);for (int i n - 1; i 0; i--) {int temp arr[0];arr[0] arr[i];arr[i] temp;heapify(arr, i, 0);} }int main() {int arr[] {64, 34, 25, 12, 22, 11, 90, 87, 10, 5};int n sizeof(arr) / sizeof(arr[0]);heapSort(arr, n);printf(排序后的数组: );for (int i 0; i n; i)printf(%d , arr[i]);return 0; }优缺点 优点高效的原地排序算法时间复杂度为O(n log n)。缺点不稳定。 计数排序 思路 统计数组中每个元素的出现次数然后根据元素值和出现次数重新构建数组。 实现代码 #include stdio.h #include stdlib.hvoid countSort(int arr[], int n) {int max arr[0];for (int i 1; i n; i) {if (arr[i] max)max arr[i];}int* count (int*)malloc((max 1) * sizeof(int));int* output (int*)malloc(n * sizeof(int));for (int i 0; i max; i)count[i] 0;for (int i 0; i n; i)count[arr[i]];for (int i 1; i max; i)count[i] count[i - 1];for (int i n - 1; i 0; i--) {output[count[arr[i]] - 1] arr[i];count[arr[i]]--;}for (int i 0; i n; i)arr[i] output[i];free(count);free(output); }int main() {int arr[] {4, 2, 2, 8, 3, 3, 1, 5, 9};int n sizeof(arr) / sizeof(arr[0]);countSort(arr, n);printf(排序后的数组: );for (int i 0; i n; i)printf(%d , arr[i]);return 0; }优缺点 优点适用于元素范围不大的情况时间复杂度为O(n k)k为最大元素值。缺点对于元素范围很大的数据效率较低。 总结和推荐 推荐的排序算法归并排序和快速排序归并排序和快速排序都是高效的排序算法时间复杂度为O(n log n)适用于各种规模的数据集。归并排序是稳定的但需要额外的内存空间适用于所有数据类型。快速排序是不稳定的但在实践中通常比归并排序更快适用于大规模数据集。 这里推荐归并排序作为首选因为它是稳定的且不会对原始数据造成修改。如果在内存受限的情况下考虑可以选择快速排序。Bubble Sort、Selection Sort 和 Insertion Sort 适用于小规模数据集或教学目的不推荐用于实际应用。
http://www.dnsts.com.cn/news/91186.html

相关文章:

  • sentos上部署.net网站会计证初级报考时间2023年报名
  • 菜鸟教程网站是怎么做的网站着陆页是什么意思
  • 高校精神文明建设网站品牌整合推广
  • 怎么做销售网站建设网站怎样赚钱
  • 做o2o网站需要多少钱wordpress使用什么数据库
  • 怎样做软件开发seo排名诊断
  • 网站如何推广出去一个视频多平台发布
  • 花都网站推广小程序二维码怎么生成
  • 深圳网站维护页面设计网站开发时什么时间适合创建视图
  • 网站开发的交付文档wordpress评论不要地址邮箱
  • 国外搜索关键词的网站湖北潜江资讯网
  • 网站发展规划免费网站服务器安全
  • 空间设计网站公司上海市建设安全协会网站孟 侠
  • 大学生学风建设专题网站标书制作员工作内容
  • 网站推广公司大家好专业建站公司加盟
  • 免费浏览网站的软件页面跳转的方法
  • 怎么下载自己做的网站wordpress并发亿万
  • 建设银行官网学生交费网站长沙网久wordpress
  • 那些网站做的非常好看的中国城乡建中国城乡建设部网站
  • 淄博做网站的公司医疗在线网站建设
  • 网站开发数据库连接失败南昌电影网站开发
  • 珠海电商网站建设药品网站 icp
  • 一级a做爰片免费网站性恔济南网站建设-中国互联
  • 池州网站建设百度网盘免费下载
  • 删除织梦综合网站h5网站开发框架
  • 苏州网站设计价格企业门户网站建设信息
  • 做网站用微软雅黑字体被告侵权云南网站开发软件
  • 云阳营销型网站建设企业vi设计公司有哪些
  • 网站建设对于企业发展的优势源码制作网站
  • 大型网站 空间深圳品牌策划设计