排序算法总结
WLHW
这个作者很懒,什么都没留下…
展开
-
冒泡排序
基本思想 冒泡排序(Bubble Sort)是一种简单的排 序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 借助“交换”进行排序. 冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他原创 2017-10-12 10:27:25 · 155 阅读 · 0 评论 -
插入排序
基本思想: 有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序, 算法分析: 依次将每个记录插入到一个有序中去。就是说,第i遍整理时,A1,A2,...,Ai-1已经是排好序的子序列;取出第i个元素Ai,在已排好序的子序列为Ai找到一个合适的位置,并将它插到该位置上。易知上述排序当i=1时实际上为空操作,故可直接从i=2开始。 复杂度分析原创 2017-10-12 10:31:16 · 185 阅读 · 0 评论 -
选择排序
基本概念: 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 基本思想: 每轮找一个最大(小)值。 在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1原创 2017-10-12 10:42:55 · 157 阅读 · 0 评论 -
归并排序
基本概念: 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 基本思想: 运用分治法思想解决排序问题。将两个或两个以上的有序(大小关系)序列组合成一个新的有序序列。原创 2017-10-12 10:55:43 · 174 阅读 · 0 评论 -
基数排序
基本概念: 基数排序(radix sort)属于分配式排序(distribution sort)、又称桶子法(bucket sort或bin sort)。通过键值的查询,将要排序的元素分配至某些“桶”中,以达到排序的作用。 基本思想: 基数排序(以整形为例),将整形10进制按每位拆分,然后从低位到高位依次比较各个位。主要分为两个过程: (1)分配,先从个位开始,根据位值(0-9)原创 2017-10-12 11:05:26 · 4585 阅读 · 1 评论 -
快速排序
基本概念: 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 基本思想: 设要排序的数组是A[0]……原创 2017-10-12 11:37:49 · 160 阅读 · 0 评论