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

打开一个网站搜索页面跳转js北京做网站建设价格

打开一个网站搜索页面跳转js,北京做网站建设价格,feed wordpress,做网站的基本功目录 1 -> 选择排序 1.1 -> 基本思想 1.2 -> 直接选择排序 1.2.1 -> 代码实现 1.3 -> 堆排序 1.3.1 -> 代码实现 1 -> 选择排序 1.1 -> 基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置&…

目录

1 -> 选择排序

1.1 -> 基本思想

1.2 -> 直接选择排序

1.2.1 -> 代码实现

1.3 -> 堆排序

1.3.1 -> 代码实现


1 -> 选择排序

1.1 -> 基本思想

每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

1.2 -> 直接选择排序

  • 在元素集合arr[i] -- arr[n - 1]中选择关键码最大(或最小)的数据元素
  • 若它不是这组元素中的最后一个(或第一个)元素,则将它与这组元素中的最后一个(或第一个)元素交换
  • 在剩余的arr[i] -- arr[n - 2] (arr[i + 1] -- arr[n - 1]) 集合中,重复上述步骤,直到集合剩余1个元素

直接选择排序的特性总结:

  1. 好理解,但效率不是很好,实际中很少使用
  2. 时间复杂度:O(N^{2})
  3. 空间复杂度:O(1)
  4. 稳定性:不稳定

1.2.1 -> 代码实现

#define  _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>// 交换
void Swap(int* x, int* y)
{int tmp = *x;*x = *y;*y = tmp;
}// 打印
void PrintArray(int* a, int n)
{for (int i = 0; i < n; i++)printf("%d ", a[i]);printf("\n");
}// 选择排序
void SelectSort(int* a, int n)
{int begin = 0, end = n - 1;while (begin < end){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重叠,修正一下即可if (begin == maxi){maxi = mini;}Swap(&a[end], &a[maxi]);++begin;--end;}
}void TestSelectSort()
{int a[] = { 9, 2, 6, 1, 7, 3 ,0, 5, 8, 4 };PrintArray(a, sizeof(a) / sizeof(int));SelectSort(a, sizeof(a) / sizeof(int));PrintArray(a, sizeof(a) / sizeof(int));
}int main()
{TestSelectSort();return 0;
}

1.3 -> 堆排序

堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。它是通过堆来进行选择数据。需要注意的是排升序要建大堆,排降序建小堆。

堆排序特性总结:

  1. 堆排序用堆来选数,效率较高
  2. 时间复杂度:O(N\cdot logN)
  3. 空间复杂度:O(1)
  4. 稳定性:不稳定

1.3.1 -> 代码实现

#define  _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>// 交换
void Swap(int* x, int* y)
{int tmp = *x;*x = *y;*y = tmp;
}// 打印
void PrintArray(int* a, int n)
{for (int i = 0; i < n; i++)printf("%d ", a[i]);printf("\n");
}// 堆排序
void AdjustUp(int* a, int child)
{int father = (child - 1) / 2;while (child > 0){if (a[child] > a[father]){Swap(&a[child], &a[father]);//更新下标child = father;father = (father - 1) / 2;}else{break;//一旦符合小堆了,就直接退出}}
}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;}
}void TestHeapSort()
{int a[] = { 9, 2, 6, 1, 7, 3 ,0, 5, 8, 4 };PrintArray(a, sizeof(a) / sizeof(int));HeapSort(a, sizeof(a) / sizeof(int));PrintArray(a, sizeof(a) / sizeof(int));
}int main()
{TestHeapSort();return 0;
}


感谢大佬们的支持!!!

互三啦!!!

http://www.yayakq.cn/news/566248/

相关文章:

  • 网站建设合集seo关键词优化到首页
  • 淄博网站制作多样定制室内设计师前景怎么样
  • 湖南企业网站建设制作网站建设中的安全问题
  • 怎样找回网站备案密码错误网络推广公司是干什么
  • 网站建设外包被骗志鸿优化设计答案
  • vps 网站异常网站开发建设费用明细
  • 教育网站制作定制网站更新提醒
  • 中国网站访问量排行wordpress revision
  • 建设部网站四库一平台福清做网站
  • 滨州网站建设模板建设非主营电子商务企业网站有哪些
  • 连云港网站关键词优化南昌做网站的公司哪家好
  • 暗网网站建设网站阿里云服务器
  • 专业手机网站建设多少钱天津建筑工程信息网
  • 《网站开发技术》模板广东省自然资源厅陈光荣
  • 怎么做网站推全国建设信息网
  • 嗨学网官网昆明seo和网络推广
  • 交互式网站开发技术有哪些哈尔滨建设工程管理工资多少
  • 邢台做移动网站公司电话号码在线免费网站模板
  • 长沙百度网站推广wordpress 增加 专题
  • 怎样做动漫照片下载网站科技有限公司名称大全
  • 单本小说网站百度灰色关键词技术
  • 哪里有网站建设多少钱网页制作与设计属于什么专业
  • 网站空间商怎么做电商网站建设费用预算
  • 购物平台有哪些比较火seo网站推广怎样
  • 石家庄网站制作公司哪家好郑州网站开发hndlwx
  • 写出网站开发的基本流程南宁建站平台
  • 网站建站后维护需要做哪些商品热搜词排行榜
  • 好看的网站设计人性本私wordpress
  • 网站文章更新潍坊作风建设网站
  • 怎样优化手机网站免费建站平台