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

asp网站怎么做百度指数是干嘛的

asp网站怎么做,百度指数是干嘛的,网站开发天津网站开发,金融课程网站模板下载目录 一、选择排序 1.1 什么是选择排序? 1.2 思路 1.2.1 思路一 1.2.2 优化思路 1.3 C语言源码 1.3.1 思路一 1.3.2 优化思路 二、堆排序 2.1 调整算法 2.1.2 向上调整算法 2.1.3 向下调整算法 2.2 建堆排序 一、选择排序 1.1 什么是选择排序&#xf…

目录

一、选择排序

1.1 什么是选择排序?

1.2 思路

1.2.1 思路一

1.2.2 优化思路

1.3 C语言源码

1.3.1 思路一

1.3.2 优化思路

二、堆排序

2.1 调整算法

2.1.2 向上调整算法

2.1.3 向下调整算法

2.2 建堆排序


一、选择排序

1.1 什么是选择排序?

选择排序是一种简单直观的排序算法。它的基本思想是从未排序的数据中选择最小(或最大)的元素,放到已排序数据的末尾,同时将该元素从未排序部分删除,直到所有元素都排序完成。

具体操作为,首先找到未排序部分的最小元素,并与未排序部分的第一个元素交换位置,这样就完成了一次选择。然后,将接下来未排序部分的第一个元素视为最小,找到最小元素并与未排序部分的第一个元素交换位置,以此类推,直到所有元素都排序完成。

选择排序的时间复杂度为O(n^2),是一种不稳定的排序算法。虽然它的效率相对较低,但由于其简单易实现,可以用于排序小规模的数据集合。然而对于大规模数据集合,选择排序通常不是一个最佳的选择。

1.2 思路

1.2.1 思路一

  1. 遍历第一趟数组,找出数组的最小值,与第一个数据交换
  2. 遍历第二趟数组,继续找出最小值,与第二个数据交换
  3. 重复上述动作

1.2.2 优化思路

  1. 一趟遍历找到最大和最小的元素,分别把他们放到数组的两端
  2. 缩小区间最大最小值包含的区间,找到次大,次小的元素
  3. 以此类推,直到头尾下标重合

该思路可能存在的问题:当maxi的位置与begin重合,则begin先与mini的位置交换,此时max位置的最大值被交换走,导致endmax交换的数值是错误的(图解见下)

1.3 C语言源码

1.3.1 思路一

//交换两个数据
void Swap(int* a, int* b)
{int temp = *a;*a = *b;*b = temp;
}
//选择排序
void SelectSort(int* arr, int n)
{int i = 0;for (i = 0; i < n-1; i++){int min = i;for (int j = i+1; j < n; j++){if (arr[j] < arr[min]){min = j;}}Swap(&arr[i], &arr[min]);}
}

1.3.2 优化思路

//交换两个元素
void Swap(int* p1, int* p2)
{int tmp = *p1;*p1 = *p2;*p2 = tmp;
}
//插入排序
void SelectSort(int* a, int n)
{int begin = 0;int end = n - 1;while (begin < end){int mini = begin;int maxi = begin;//在区间中找出最小的数和最大的数for (int i = begin + 1; i <= end; i++){if (a[i] > a[maxi]){maxi = i;}if (a[i] < a[mini]){mini = i;}}//最小的数与首交换Swap(&a[begin], &a[mini]);//特殊情况修正if (begin == maxi)				{maxi = mini;}//最大的数与尾交换Swap(&a[end], &a[maxi]);begin++;end--;}
}

二、堆排序

2.1 调整算法

详细图解请见:二叉树的顺序实现-堆-CSDN博客

2.1.2 向上调整算法

void AdjustUp(int* a, int child)
{int parent = (child - 1) / 2;while (child > 0){if (a[child] < a[parent]){Swap(&a[child], &a[parent]);child = parent;parent = (child - 1) / 2;}else{break;}}
}

2.1.3 向下调整算法

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;}}
}

2.2 建堆排序

请点击:堆排序与TopK问题详解-CSDN博客

http://www.dinnco.com/news/63674.html

相关文章:

  • 代做网站在哪找活杭州百度推广优化排名
  • 网站优化北京如何联系?免费h5制作网站
  • 做网站项目流程资源网站优化排名优化
  • 做网站怎样赚卖流量网络营销教材电子版
  • 加强大学生思想政治教育网站建设怎么在网络上推广
  • 学校专业群建设专题网站自助建站模板
  • 买个域名自己做网站吗今天重要新闻
  • 何炅做的代言网站2024最火的十大新闻
  • 个人备案 网站名搜索引擎优化seo的英文全称是
  • 南昌网站建设700起百度推广和百度竞价有什么区别
  • 男鞋 东莞网站建设宁波seo排名优化培训
  • 如何设置网站布局只需要手机号的广告
  • 网站建设费用申请今日的新闻头条10条
  • 用自己电脑做服务器 网站怎么查百度收录
  • 做生存分析的网站网站优化技术
  • 建筑工程网站源码活动宣传推广方案怎么写
  • 辽宁省城乡建设规划院网站亚马逊提升关键词排名的方法
  • 5000元网站seo推广快速seo关键词优化技巧
  • 视频聊天网站怎么做什么是整合营销概念
  • wordpress 课程管理系统江门关键词排名优化
  • 虚拟币交易网站源码网站查找工具
  • 做站群什么样的算是违法网站百度指数是免费的吗
  • 网站设计中怎么做二级页面深圳网站开发制作
  • 如何压缩网站windows优化
  • 郑州网站建设找智巢宁波优化网页基本流程
  • 设计院加盟广州seo代理
  • 网站建设需要提供那些资料网店运营工资一般多少
  • 商务网站建设与维护英文谷歌seo
  • 大港手机网站建设新闻危机公关
  • 吉安市城乡规划建设局网站seo关键词是什么