![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构排序
庆民路
这个作者很懒,什么都没留下…
展开
-
数据结构排序:八大排序之冒泡排序(冒泡排序属于交换排序)
算法思想:从后往前,两两比较(a[i-1]与a[i]比较),逆序交换两个元素,顺序不动。第一趟排序过后最小元素就会移到待排序元素最前面,这样每趟排序过后剩余待排序元素的最小值总会移到剩余待排序元素最前面,这样,n个元素最多进行n-1趟就可以有序了。注意的是,只要其中一趟如果没发生交换元素的情况,则此时该排序元素就已经是有序了,后续的就不用继续比较交换了。所以算法中应设置一个标志位,来判断每趟循环是...原创 2018-05-22 15:55:19 · 2635 阅读 · 0 评论 -
数据结构:八大排序之简单选择排序(选择排序)
1、算法思想:在待排记录中依次选择关键字最小的记录添加到有序序列中,逐渐缩小范围直至全部记录选择完毕。每一趟从待排的无序区中选出关键字最小的记录,顺序放在已排好序的子序列的最后,直至记录全部排完。2、复杂度:直接选择排序的时间复杂度为O(n2)。空间复杂度 O(1) 稳定性 :不稳定的排序方法3、java代码:package SelectedSort;import java.uti...原创 2018-08-09 09:39:32 · 2888 阅读 · 0 评论 -
快速排序
package SwapSort;import java.util.Arrays;public class QuickSort { public static void main(String[] args) { // TODO Auto-generated method stub int[] data={49,38,65,97,76,13,27,50...原创 2018-08-10 10:31:38 · 127 阅读 · 0 评论 -
数据结构:八大排序之堆排序(选择排序)
1、算法思想:排序过程(小根堆) ⑴ 以初始关键字序列,建立堆; ⑵ 输出堆顶最小元素; ⑶ 调整余下的元素,使其成为一个新堆; ⑷ 重复⑵,⑶ n 次,得到一个有序序列。--建堆、输堆、调堆、重复;2、复杂度:算法评价 时间复杂度:最坏情况下T(n)=O(nlog2n) 空间复杂度:S(n)=O(1);堆排序是不稳定的; 堆排序适用于n 较大的...原创 2018-08-14 12:14:54 · 311 阅读 · 0 评论 -
数据结构:八大排序之希尔排序
1、先取一个正整数d1<n,把所有相隔d1的记录放一组,组内进行直接插入排序;然后取d2<d1,重复上述分组和排序操作;直至di=1,即所有记录放进一个组中排序为止(本例增量序列为:5,3,1)2、代码package InsertSort;import java.util.Arrays;public class ShellSort { /** * ...原创 2018-12-14 15:19:07 · 150 阅读 · 0 评论 -
数据结构:八大排序之快速排序
1、从待排序列中任取一个元素 (例如取第一个) 作为中心,所有比它小的元素一律前放,所有比它大的元素一律后放,形成左右两个子表;然后再对各子表重新选择中心元素并依此规则调整,直到每个子表的元素只剩一个。2、代码package SwapSort;import java.util.Arrays;public class QuickSort { public static vo...原创 2018-12-14 15:23:06 · 197 阅读 · 0 评论 -
数据结构:八大排序之二路归并排序
1、将记录序列R[1..n]看成是n个长度为1的子序列,然后两两归并,得到┏n/2┓个长度为2或1的有序子序列。再两两归并,重复此过程,直至得到一个长度为n的有序序列为止。这种方法每次都将两个序列合并成一个序列,故称为2路归并排序。2、代码package mergesort;import java.util.Arrays;public class MergeSort { ...原创 2018-12-14 15:25:43 · 1138 阅读 · 0 评论