摘要:
基数排序(RadixSort) BinSort 基本思想:BinSort想法非常简单,首先创建数组A[MaxValue];然后将每个数放到相应的位置上(例如17放在下标17的数组位置);最后遍历数组,即为排序后的结果。 问题: 当序列中存在较大值时,BinSort 的排序方法会浪费大量的空间开销。 阅读全文
posted @ 2020-11-22 18:33
lovivi
阅读(243)
评论(0)
推荐(0)
摘要:
堆排序(HeapSort) 基本思想: 平均时间复杂度:O(NlogN)由于每次重新恢复堆的时间复杂度为O(logN),共N - 1次重新恢复堆操作,再加上前面建立堆时N / 2次向下调整,每次调整时间复杂度也为O(logN)。二次操作时间相加还是O(N * logN)。 java代码实现: /构建 阅读全文
posted @ 2020-11-22 18:32
lovivi
阅读(144)
评论(0)
推荐(0)
摘要:
归并排序(Merge Sort) 基本思想:参考归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法的一个非常典型的应用。首先考虑下如何将2个有序数列合并。这个非常简单,只要从比较2个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将 阅读全文
posted @ 2020-11-22 18:30
lovivi
阅读(195)
评论(0)
推荐(0)
摘要:
快速排序(Quicksort) 基本思想:(分治) 先从数列中取出一个数作为key值; 将比这个数小的数全部放在它的左边,大于或等于它的数全部放在它的右边; 对左右两个小数列重复第二步,直至各区间只有1个数。 辅助理解:挖坑填数 初始时 i = 0; j = 9; key=72由于已经将a[0]中的 阅读全文
posted @ 2020-11-22 18:28
lovivi
阅读(236)
评论(0)
推荐(0)
摘要:
希尔排序(Shell Sort) 前言:数据序列1: 13-17-20-42-28 利用插入排序,13-17-20-28-42. Number of swap:1;数据序列2: 13-17-20-42-14 利用插入排序,13-14-17-20-42. Number of swap:3;如果数据序列 阅读全文
posted @ 2020-11-22 18:26
lovivi
阅读(161)
评论(0)
推荐(0)
摘要:
插入排序(Insertion Sort) 基本思想:在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。 过程: 平均时间复杂度:O(n2) java代码实现: public static void inse 阅读全文
posted @ 2020-11-22 18:25
lovivi
阅读(105)
评论(0)
推荐(0)
摘要:
选择排序(SelctionSort) 基本思想:在长度为N的无序数组中,第一次遍历n-1个数,找到最小的数值与第一个元素交换;第二次遍历n-2个数,找到最小的数值与第二个元素交换;。。。第n-1次遍历,找到最小的数值与第n-1个元素交换,排序完成。 过程: 平均时间复杂度:O(n2) java代码实 阅读全文
posted @ 2020-11-22 18:23
lovivi
阅读(141)
评论(0)
推荐(0)
摘要:
冒泡排序(BubbleSort) 基本思想:两个数比较大小,较大的数下沉,较小的数冒起来。 过程: 比较相邻的两个数据,如果第二个数小,就交换位置。 从后向前两两比较,一直到比较最前两个数据。最终最小数被交换到起始的位置,这样第一个最小数的位置就排好了。 继续重复上述过程,依次将第2.3...n-1 阅读全文
posted @ 2020-11-22 18:20
lovivi
阅读(317)
评论(0)
推荐(0)

浙公网安备 33010602011771号