当前位置: 首页 > news >正文 中国建设教育网站网站建设基础培训 news 2025/10/24 17:17:50 中国建设教育网站,网站建设基础培训,本地的南通网站建设,iosapp开发工具摘要 查找和排序算法是算法的入门知识#xff0c;其经典思想可以用于很多算法当中。因为其实现代码较短#xff0c;应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗#xff0c;只要熟悉了思想#xff0c;灵活运用也不是难事。一般在面试中最常…摘要 查找和排序算法是算法的入门知识其经典思想可以用于很多算法当中。因为其实现代码较短应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗只要熟悉了思想灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。面试官对于这些排序可能会要求比较各自的优劣、各种算法的思想及其使用场景。还有要会分析算法的时间和空间复杂度。通常查找和排序算法的考察是面试的开始如果这些问题回答不好估计面试官都没有继续面试下去的兴趣都没了。所以想开个好头就要把常见的排序算法思想及其特点要熟练掌握有必要时要熟练写出代码。下面主要介绍经典排序算法。 一、排序算法的时间与空间复杂度分析 比较排序的优势是适用于各种规模的数据也不在乎数据的分布都能进行排序。可以说比较排序适用于一切需要排序的情况。 常见的快速排序、归并排序、堆排序、冒泡排序等属于比较排序。在排序的最终结果里元素之间的次序依赖于它们之间的比较。每个数都必须和其他数进行比较才能确定自己的位置。在冒泡排序之类的排序中问题规模为n又因为需要比较n次所以平均时间复杂度为O(n²)。在归并排序、快速排序之类的排序中问题规模通过分治法消减为logN次所以时间复杂度平均O(nlogn)。 非比较排序只要确定每个元素之前的已有的元素个数即可所有一次遍历即可解决。算法时间复杂度O(n)。 计数排序、基数排序、桶排序则属于非比较排序。非比较排序是通过确定每个元素之前应该有多少个元素来排序。针对数组arr计算arr[i]之前有多少个元素则唯一确定了arr[i]在排序后数组中的位置。非比较排序时间复杂度底但由于非比较排序需要占用空间来确定唯一位置。所以对数据规模和数据分布有一定的要求。 二、排序算法 2.1 冒泡排序Bubble Sort 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列一次比较两个元素如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 算法描述 比较相邻的元素。如果第一个比第二个大就交换它们两个对每一对相邻元素作同样的工作从开始第一对到结尾的最后一对这样在最后的元素应该会是最大的数针对所有的元素重复以上的步骤除了最后一个重复步骤1~3直到排序完成。冒泡算法实现 /*** Description:冒泡排序** param array 需要排序的数组* author xjl* date 2023/1/10 9:54*/ public static void bubbleSort(int[] array) {if (array null || array.length 1) {return;}int length array.length;// 外层循环控制比较轮数ifor (int i 0; i length; i) {// 内层循环控制每一轮比较次数每进行一轮排序都会找出一个较大值// (array.length - 1)防止索引越界(array.length - 1 - i)减少比较次数for (int j 0; j length - 1 - i; j) {// 前面的数大于后面的数就进行交换if (array[j] array[j 1]) {int temp array[j 1];array[j 1] array[j];array[j] temp;}}}}空间与时间复杂度 时间复杂度O(n^2)空间复杂度O(1) 2.2 选择排序Selection Sort 表现最稳定的排序算法之一因为无论什么数据进去都是O(n^2)的时间复杂度所以用到它的时候数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。理论上讲选择排序能也是平时排序一般人想到的最多的排序方法了吧。 选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理首先在未排序序列中找到最小大元素存放到排序序列的起始位置然后再从剩余未排序元素中继续寻找最小大元素然后放到已排序序列的末尾。以此类推直到所有元素均排序完毕。 算法描述 n个记录的直接选择排序可经过n-1趟直接选择排序得到有序结果。具体算法描述如下 初始状态无序区为R[1…n]有序区为空 第i趟排序(i1,2,3…n-1)开始时当前有序区和无序区分别为R[1…i-1]和R(i…n。该趟排序从当前无序区中-选出关键字最小的记录 R[k]将它与无序区的第1个记录R交换使R[1…i]和R[i1…n)分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区 n-1趟结束数组有序化了。 选择排序算法实现 /*** Description: 选择排序** param array* return void* author xjl* date 2023/1/11 23:31*/ public static void selectionSort(int[] array) {if (array null || array.length 1) {return;}int length array.length;for (int i 0; i length - 1; i) {// 保存最小数的索引int minIndex i;for (int j i 1; j length; j) {// 找到最小的数if (array[j] array[minIndex]) {minIndex j;}}// 交换元素位置if (i ! minIndex) {swap(array, minIndex, i);}}}/*** Description: 交换元素位置** param array* param a* param b* return void* author xjl* date 2019/7/11 17:57*/ private static void swap(int[] array, int a, int b) {int temp array[a];array[a] array[b];array[b] temp; }空间与时间复杂度 时间复杂度O(n^2)空间复杂度O(1) 2.3 插入排序Insertion Sort 2.4 希尔排序Shell Sort 2.5 归并排序Merge Sort 2.6 快速排序Quick Sort 2.7 堆排序Heap Sort 2.8 计数排序Counting Sort 2.9 桶排序Bucket Sort 2.10 基数排序Radix Sort 博文参考 史上最全经典排序算法总结(Java实现)_ThinkWon的博客-CSDN博客 文章转载自: http://www.morning.cgntj.cn.gov.cn.cgntj.cn http://www.morning.bklkt.cn.gov.cn.bklkt.cn http://www.morning.qyhcg.cn.gov.cn.qyhcg.cn http://www.morning.rgksz.cn.gov.cn.rgksz.cn http://www.morning.zfhzx.cn.gov.cn.zfhzx.cn http://www.morning.lztrt.cn.gov.cn.lztrt.cn http://www.morning.qptbn.cn.gov.cn.qptbn.cn http://www.morning.yggwn.cn.gov.cn.yggwn.cn http://www.morning.kqcqr.cn.gov.cn.kqcqr.cn http://www.morning.ptlwt.cn.gov.cn.ptlwt.cn http://www.morning.rzmzm.cn.gov.cn.rzmzm.cn http://www.morning.kdlzz.cn.gov.cn.kdlzz.cn http://www.morning.rqhn.cn.gov.cn.rqhn.cn http://www.morning.hlshn.cn.gov.cn.hlshn.cn http://www.morning.bchfp.cn.gov.cn.bchfp.cn http://www.morning.bbjw.cn.gov.cn.bbjw.cn http://www.morning.kuaijili.cn.gov.cn.kuaijili.cn http://www.morning.pmdlk.cn.gov.cn.pmdlk.cn http://www.morning.rdkqt.cn.gov.cn.rdkqt.cn http://www.morning.klyyd.cn.gov.cn.klyyd.cn http://www.morning.fyxr.cn.gov.cn.fyxr.cn http://www.morning.mtyhk.cn.gov.cn.mtyhk.cn http://www.morning.fbzdn.cn.gov.cn.fbzdn.cn http://www.morning.fxygn.cn.gov.cn.fxygn.cn http://www.morning.wjhnx.cn.gov.cn.wjhnx.cn http://www.morning.bqnhh.cn.gov.cn.bqnhh.cn http://www.morning.tpyrn.cn.gov.cn.tpyrn.cn http://www.morning.wqkzf.cn.gov.cn.wqkzf.cn http://www.morning.dyxzn.cn.gov.cn.dyxzn.cn http://www.morning.gqbks.cn.gov.cn.gqbks.cn http://www.morning.yszrk.cn.gov.cn.yszrk.cn http://www.morning.plydc.cn.gov.cn.plydc.cn http://www.morning.yqkmd.cn.gov.cn.yqkmd.cn http://www.morning.qbmjf.cn.gov.cn.qbmjf.cn http://www.morning.tkzrh.cn.gov.cn.tkzrh.cn http://www.morning.mrxgm.cn.gov.cn.mrxgm.cn http://www.morning.mhpkz.cn.gov.cn.mhpkz.cn http://www.morning.smmrm.cn.gov.cn.smmrm.cn http://www.morning.lwzpp.cn.gov.cn.lwzpp.cn http://www.morning.gdpai.com.cn.gov.cn.gdpai.com.cn http://www.morning.mpwgs.cn.gov.cn.mpwgs.cn http://www.morning.wmdlp.cn.gov.cn.wmdlp.cn http://www.morning.rmkyb.cn.gov.cn.rmkyb.cn http://www.morning.qncqd.cn.gov.cn.qncqd.cn http://www.morning.jsmyw.cn.gov.cn.jsmyw.cn http://www.morning.fksxs.cn.gov.cn.fksxs.cn http://www.morning.rbmm.cn.gov.cn.rbmm.cn http://www.morning.kksjr.cn.gov.cn.kksjr.cn http://www.morning.kyjyt.cn.gov.cn.kyjyt.cn http://www.morning.kjawz.cn.gov.cn.kjawz.cn http://www.morning.gxfpk.cn.gov.cn.gxfpk.cn http://www.morning.tbqdm.cn.gov.cn.tbqdm.cn http://www.morning.pszw.cn.gov.cn.pszw.cn http://www.morning.pphgl.cn.gov.cn.pphgl.cn http://www.morning.nrlsg.cn.gov.cn.nrlsg.cn http://www.morning.ybhrb.cn.gov.cn.ybhrb.cn http://www.morning.bpcf.cn.gov.cn.bpcf.cn http://www.morning.nsncq.cn.gov.cn.nsncq.cn http://www.morning.fhlfp.cn.gov.cn.fhlfp.cn http://www.morning.sjwqr.cn.gov.cn.sjwqr.cn http://www.morning.rbbyd.cn.gov.cn.rbbyd.cn http://www.morning.mcwrg.cn.gov.cn.mcwrg.cn http://www.morning.bntgy.cn.gov.cn.bntgy.cn http://www.morning.mjyrg.cn.gov.cn.mjyrg.cn http://www.morning.ydyjf.cn.gov.cn.ydyjf.cn http://www.morning.clybn.cn.gov.cn.clybn.cn http://www.morning.hkchp.cn.gov.cn.hkchp.cn http://www.morning.bzsqr.cn.gov.cn.bzsqr.cn http://www.morning.hhnhb.cn.gov.cn.hhnhb.cn http://www.morning.ns3nt8.cn.gov.cn.ns3nt8.cn http://www.morning.bzfwn.cn.gov.cn.bzfwn.cn http://www.morning.zmzdx.cn.gov.cn.zmzdx.cn http://www.morning.hdlhh.cn.gov.cn.hdlhh.cn http://www.morning.plfy.cn.gov.cn.plfy.cn http://www.morning.rrbhy.cn.gov.cn.rrbhy.cn http://www.morning.ftwlay.cn.gov.cn.ftwlay.cn http://www.morning.ghphp.cn.gov.cn.ghphp.cn http://www.morning.rykw.cn.gov.cn.rykw.cn http://www.morning.grfhd.cn.gov.cn.grfhd.cn http://www.morning.zdhnm.cn.gov.cn.zdhnm.cn 查看全文 http://www.tj-hxxt.cn/news/245897.html 相关文章: 企业网站建设费属于办公费吗东莞市网站建设平台 移动网站适配网站开发需要后台吗 企业网站怎么收录wordpress 引用 样式 股票实时交易网站开发新乡最新消息 深圳创新网站建设文化馆网站建设意义 钓鱼网站的主要危害手机如何制作图片 网站安全检测网站统一用户管理系统 网站前端建设都需要什么福建省建设监理网官方网站 如何将自己做的网站织梦做网站主页容易吗 网站排名推广自己怎么做大型网站建设哪家服务好 做淘宝门头的网站单职业传奇手机手游版 云天下网站建设怎么做公司网页 上海的建设网站制作一线城市做网站工资有多少钱 泰安住房和城乡建设厅网站深圳网站建设怎样做 三门峡建设银行网站网站开发需要哪些语言 做球衣外贸用什么网站网站结构是什么 怎么做 石家庄建设集团有限公司网站旅游电子商务网站开发方案 地图网站开发青岛seo网站管理 企业网站备案时间宁波软件开发制作 商城网站平台怎么做的pico笔克品牌介绍 哪个网站可以做结婚请柬东莞市建设局网app 北仑网站制作山东德州网站建设 设计师网站赚钱导购网站建设需求模版 建个企业网站需要多少钱小学生网站制作 如何知道一个网站的流量创意字体logo设计免费 做58网站怎么赚钱吗故城建设银行网站 规划案例网站个人网站模板html代码 做网站需要服务器么网站qq临时会话怎么弄 手机酒店网站建设项目设计课题研究高中综合评价 自己做的音乐网站侵权问题国外 优秀网站设计