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

2019年开公司做网站可以吗专业做公墓 陵园的网站

2019年开公司做网站可以吗,专业做公墓 陵园的网站,关于做网站的外语文献,郑州腾石建站目录 一 堆排序 二 直接选择排序 一 堆排序 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。它是 通过堆来进行选择数据。 需要注意的是排升序要建大堆,排降序建小堆。 直接选择排…

目录

一 堆排序

二 直接选择排序


一 堆排序

堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。它是 通过堆来进行选择数据。

需要注意的是排升序要建大堆,排降序建小堆。

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

1. 堆排序使用堆来选数,效率就高了很多。

2. 时间复杂度:O(N * logN)

3. 空间复杂度:O(1)

4. 稳定性:不稳定

void Swap(int* x, int* y)
{int tmp = *x;*x = *y;*y = tmp;
}
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)
{//向下调整建堆//O(N)for (int i = (n - 1 - 1) / 2; i >= 0; i--){AdjustDown(a, n, i);}//堆排序//O(N*logN)int end = n - 1;while (end > 0){Swap(&a[0], &a[end]);AdjustDown(a, end, 0);end--;}
}int main()
{int arr[] = { 2, 3, 5, 7, 4, 6, 8};//InsertSort(arr, sizeof(arr) / sizeof(int));//排升序//InsertSort(arr, sizeof(arr) / sizeof(int));//排升序HeapSort(arr, sizeof(arr) / sizeof(int));//排升序for (int i = 0; i < sizeof(arr) / sizeof(int); i++){printf("%d ", arr[i]);}
}

 

 

我们可以算算向下建堆的时间复杂度

 

 二 直接选择排序

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

1. 直接选择排序思考非常好理解,但是效率不是很好。实际中很少使用

2. 时间复杂度:O(N^2)

3. 空间复杂度:O(1)

4. 稳定性:不稳定

void SelectSort(int* a, int n)
{int begin = 0, end = n - 1;while (begin < end){int mini = begin;int maxi = begin;for (int i = begin + 1; i <= end; i++){if (a[i] < a[mini]){mini = i;}if (a[i] > a[maxi]){maxi = i;}}Swap(&a[mini], &a[begin]);//检查maxi是否被换走了if (maxi == begin){maxi = mini;}Swap(&a[maxi], &a[end]);begin++;end--;}
}

本节的重点是堆排序, 对二叉树的顺序结构基础要求很高, 大家如果基础不好或者不太理解,可以看看我二叉树的博客. 

继续加油!

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

相关文章:

  • 亦庄网站建设深圳中装建设公司
  • 百度公司网站制作百度网页游戏大厅
  • 梁山专业网站建设企业门户网站静态模板
  • 海门市住房和城乡建设局网站做自行车车队网站的名字
  • 厦门企业制作网站方案建设网站企业公司
  • 网站建设公司方维做网站前端开发的必备软件
  • 网站建设目标怎么看阿里巴巴logo图片
  • 延边延吉网站建设如何在搜索引擎做网站
  • 手机开网站做网站哪些
  • 网站是如何建立的呢安卓app上架费用
  • 企业网站备案信息查询系统正保建设工程网站
  • 做网站用电脑自带的wordpress插件 一键登录
  • 网站开发要学的课程类似wordpress的程序
  • 怎么做qq钓鱼网站如何做自助搜券网站
  • 可以做点赞的网站网站编程所用的语言有
  • 上海人才网站官网入口做网站什么软件好
  • 网站建设一般做什么wordpress添加视频集
  • 上海知名网站建设公外贸企业网站建设公司
  • 网站模板怎么修改教程wordpress网站换字体
  • 微网站免费制作百度安全中心
  • html5导航网站银川网站建设哪家好叫啥名字
  • 交易所网站建设中国建设银行u盾官方网站
  • 中国建设局网站查询佛山网站建设收费标准
  • 网站建设从零开始 教程企业网站搭建方案
  • 全屏响应式网站你就知道
  • 爱做网站软件有初中生做的网站吗
  • 公司网站建设进度公司名字大全必过
  • 做网站编程用什么语言好微信软文怎么写
  • 网站开发群微信网站链接怎么做
  • 十大免费不用收费的网站门户网站建设公司价位