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

定制您的专属建站方案免费网站提交入口

定制您的专属建站方案,免费网站提交入口,1688网站入口,查网站是什么公司做的冒泡排序 冒泡排序的思想 冒泡排序的思想是每次将最大的一下一下运到最右边,然后将最右边这个确定下来。再来确定第二大的,再确定第三大的... 对于数组 a [ ] ,具体的来说,每次确定操作就是从左往右扫描,如果 a [ i ] > a [ …

·冒泡排序

冒泡排序的思想

冒泡排序的思想是每次将最大的一下一下运到最右边,然后将最右边这个确定下来。再来确定第二大的,再确定第三大的...
对于数组 a [ ] ,具体的来说,每次确定操作就是从左往右扫描,如果 a [ i ] > a [ i + 1] ,我们就执行swap ( a [ i ] , a [ i + 1 ] ) 将两项交换,然后再往右检查,这样可以找出最大的并将其丢到最右边。

第一次确定操作是将a [ 1 ] ~ a [ n ] 中最大的放到 a [ n ] ;

第二次确定操作是将 a [ 1 ] ~ a [ n - 1 ] 中最大的放到 a [ n - 1 ] 。
依此类推(类似地,如果你想先把最小的放到左边也是可以的),时间复杂度为 O ( n ^ 2 )

由于排序过程中,数字像冒泡泡一样从左往右换过去,故名冒泡排序。

冒泡排序的实现

冒泡排序一般用双重循环来实现。在这里i表示每次操作的右边界,也是存放当前操作最大值的位置。虽然j的范围是到 i - 1 ,实际上 j + 1 会到 i ,所以可以使得操作是正确的。

例题讲解

用冒泡排序解决:

·选择排序

选择排序的思想

选择排序的思想和冒泡排序类似,是每次找出最大的然后直接放到右边对应位置,然后将最右边这个确定下来(而不是一个一个地交换过去)。再来确定第二大的,再确定第三大的...
对于数组 a [ ] ,具体的来说,每次确定操作(假设当前要确定的是 i 位置)就是从左往右扫描,计算出最大元素的下标 max_id ,最后执行一次 swap ( a [ max_id ] , a [ i] ) 将两项交换即可。第一次确定操作是将a [ 1 ] ~ a [ n ] 中最大的放到 a [ n ] ;
第二次确定操作是将 a [1] ~ a [ n - 1 ] 中最大的放到 a [ n - 1 ] 。
依此类推(类似地,如果你想先把最小的放到左边也是可以的),时间复杂度为O(n^2)。

选择排序的实现

选择排序一般用双重循环来实现。max_id 表示最大元素的下标。这里要注意的细节是 j 的范围是[1,i ] ,而在冒泡排序中j的范围是 [ 1,i - 1 ]。

例题讲解

用选择排序解决:

·插入排序

插入排序的思想

插入排序是一种简单直观的排序算法,其基本思想是将待排序的元素逐个插入到已排序序列的合适位置中,使得已排序序列逐渐扩大,从而逐步构建有序序列,最终得到完全有序的序列。
它类似于我们打扑克牌时的排序方式,将一张张牌插入到已经有序的手牌中。时间复杂度为O(n^2)。

插入排序的实现

插入排序一般用双重循环来实现。初始时我们认为长度为1的数组a [ 1 ] 是有序的(显然),然后将 a [ 2 ] 插入到合适的位置,使得 a [ 1 ~ 2 ] 有序,然后将 a [ 3 ] 插入,使得 a [ 1 ~ 3 ] 有序...直至a[1~n]有序。

例题讲解

用选择排序解决:

·快速排序

快速排序而的思想

快速排序是一种基于分治法的排序方法,原理是将一个数组分成两个子数组,其中一个子数组的所有元素都小于另一个子数组的元素,然后递归地对这两个子数组进行排序。
快速排序的思想是通过不断地将数组分成两个子数组,递归地对子数组进行排序,最终得到
一个有序的数组。这个过程通过选择合适的基准和分区操作来实现。
快速排序拥有更好的时间复杂度O(nlogn),且不需要额外空间。

快速排序的实现

这是快速排序的递归主体 QuickSort()。传入参数为要排序的数组和区间的左右端点。
 Partition函数会将数组 a [ l ] ~ a [ r ] 这个区间中某个基准数字放到正确的位置并将这个位置返回。
在确定了 mid 的位置之后,可以保证 a [ l ] ~ a [ mid-1]都< a [mid] < a [mid+1] ~ a[r],于是只需要将左右两边分别向下递归地排序即可。

这是Partition函数(分区函数),用于将比pivot小的放到左边,大的放到右边,最后返回pivot所处的位置。


例题讲解

用快速排序解决,前面讲过的几种排序方法的时间复杂度都是O(n^2),所以只能解决规模在1e3左右的问题,快速排序拥有较好的时间复杂度O(nlogn),所以可以解决更大规模的问题(约1e5)。

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

相关文章:

  • 织梦网站去除技术支持做视频网站程序多少钱
  • 佛山全网营销型网站建设平面设计跟网站建设
  • 汉中建网站马鞍山网站建设价格
  • 怎样能注册自己的网站wordpress 万能 主题
  • 网站开发系统毕业综合实践报告正规营销培训
  • 公司网站制作企业百度号注册官网
  • wordpress 页面分栏河南seo推广平台
  • 公司后台的网站代理维护更新thinkphp 网站根目录地址
  • 汕头做网站费用做一个网上商城网站建设费用多少钱
  • dede 手机站 怎么获取跳转网站比较好的wordpress主题
  • 浙江省建设监理协会官方网站wordpress 5开发接口
  • 教师做爰网站建设网站创业
  • 培训心得体会范文临漳seo整站排名
  • 北京网站建设公司价格网站建设技术外包
  • 泰安手机网站建设公司虚拟机wordpress安装
  • 太原做网站需要多少钱建营销型网站
  • 网站备案授权网站优化就是seo
  • 德州极速网站建设小程序摄影网站设计说明书
  • 上海短视频推广公司怎么seo快速排名
  • 南宁做网站方案地方门户源码
  • 做招聘网站毕业设计网站建设存在哪些问题
  • 教育网站建站需求广东工程建设监理协会网站
  • qq空间怎么跟网站做链接吗c2c的网站
  • 医药招商网站建设网站建设公司 倒闭
  • 网站建设价类型公司网站一年多少钱
  • 杭州网站制作排名买东西哪个平台质量好
  • 视频网站用什么做做网站哪家公司便宜
  • 白山网站seo网站虚拟空间更新缓存
  • 加快网站平台建设有哪些做头像的网站
  • 广州市增城区建设局网站怎么做简历的网站