广州千锋教育Java培训机构
Java作为时下流行的编程语言,自流行开始就没有衰落过,作为一门永远不过时的语言是可怕的,在千锋教育参加Java培训时总结了一些关于Java常用的排序算法,希望对大家的Java学习有所帮助。
1.插入排序算法
插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] 都已经排好序,本趟需要找到 i 对应的元素 x 的正确位置 k ,并且在寻找这个位置 k 的过程中逐个将比较过的元素往后移一位,为元素 x “腾位置”,后将 k 对应的元素值赋为 x ,一般情况下,插入排序的时间复杂度和空间复杂度分别为 O(n2 ) 和 O(1)。
2.选择排序算法
选择排序的基本思想是遍历数组的过程中,以 i 代表当前需要排序的序号,则需要在剩余的 [i…n-1] 中找出其中的小值,然后将找到的小值与 i 指向的值进行交换。因为每一趟确定元素的过程中都会有一个选择大值的子流程,所以人们形象地称之为选择排序。选择排序的时间复杂度和空间复杂度分别为 O(n2 ) 和 O(1) 。
3.冒泡排序算法
冒泡排序是將比較大的數字沉在下面,较小的浮在上面
4.快速排序算法
通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可以分别对这两部分记录继续进行排序,已达到整个序列有序的目的,本质就是,找一个基位(枢轴,分水岭,作用是左边的都比它小,右边的都比它大。
5.合并排序算法
归并排序采用的是递归来实现,属于“分而治之”,将目标数组从中间一分为二,之后分别对这两个数组进行排序,排序完毕之后再将排好序的两个数组“归并”到一起,归并排序重要的也就是这个“归并”的过程,归并的过程中需要额外的跟需要归并的两个数组长度一致的空间
6.希尔排序算法
希尔排序的诞生是由于插入排序在处理大规模数组的时候会遇到需要移动太多元素的问题。希尔排序的思想是将一个大的数组“分而治之”,划分为若干个小的数组。
7.堆排序算法
本质就是先构造一个大顶堆,parent比children大,root节点就是大的节点 把大的节点(root)与尾节点(后一个节点,比较小)位置互换,剩下后的尾节点,现在大,其余的,从个元素开始到尾节点前一位,构造大顶堆递归。
千锋教育的Java课程不断更新,学员对于Java的学习兴趣依旧不减,来千锋学习Java,你将有不一样的收获。
千锋教育:http://www.mobile***/
千锋广州校区:http://gz.mobile***/
广州校区地址:广州市天河区元岗路310号智汇park创意园E座5层
培训咨询专线:020-22119207
咨 询 Q Q : 1660794050
面授课程:全栈HTML5+培训、JavaEE+云数据培训、Android课程培训、iOS课程培训
广州千锋教育Java培训机构
重庆其他教育培训相关信息
3小时前
7小时前
1天前
2天前
2天前
2天前
3天前
3天前
3天前
12月18日