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

厦门市海沧建设局网站企业网站开发研究现状

厦门市海沧建设局网站,企业网站开发研究现状,营销型网站建设明细,办公室装修注意事项及细节目录 一、选择排序 1.1 什么是选择排序? 1.2 思路 1.2.1 思路一 1.2.2 优化思路 1.3 C语言源码 1.3.1 思路一 1.3.2 优化思路 二、堆排序 一、选择排序 1.1 什么是选择排序? 选择排序是一种简单直观的排序算法。它的基本思想是从未排序的数据…

目录

一、选择排序

1.1 什么是选择排序?

1.2 思路

1.2.1 思路一

1.2.2 优化思路

1.3 C语言源码

1.3.1 思路一

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

二、堆排序

请点击:堆排序详细理解-CSDN博客

http://www.dtcms.com/wzjs/840946.html

相关文章:

  • 免费搭建网站的平台用asp.net制作网站
  • 北海做网站的网络公司做网站须知
  • 英德市城乡建设局网站神马推广登录
  • 唯品会网站推广策略wordpress 755
  • 深圳建设厅网站首页北京建设厅网站
  • 萧云建设网站苏州专业网站建设公司
  • 泰安网站设计wordpress 分类采集
  • 网站推广优化教程郑州做网站比较好公司
  • 网站同城在线哪里做设计君网站
  • 培训网站开发哪个好网站推广的最终目的是什么
  • gzip网站优化网络营销课程培训
  • 关于书店网站开发实例的书网站的建设ppt模板
  • 个人网站html模板下载金融行业做网站需要什么
  • 专业做网站联系电话seo优化排名教程百度技术
  • 网站后台模板 jquery公关公司排行榜
  • 做58网站怎么赚钱吗考网站开发工程师
  • 兰州网站推广优化网站权限设计方案
  • 网站怎么做反爬虫外链seo推广
  • 平面设计网站大全网站小学校园网站怎么建设
  • 房产中介网站建设管理天津互联网公司排名
  • 无锡游戏网站建设公司网站ps多大尺寸
  • 自己做服务器网站wordpress做排名
  • 网站服务器是干什么的网线制作标准
  • 域名解析网站登录上海网络公司网站建设
  • 阿里云网站商城建设网页制作与网站开发从入门到精通 豆瓣
  • 海曙网站建设网站网络创始人 网站建设
  • 网站上的地图怎么做建设php网站
  • 网站建设介绍ppt模板asp网站建设 win7
  • 专业商城网站设计公司网站如何做宣传
  • 网站制作咨询电话坂田网站设计