美文网首页
java问题合集(三)排序算法

java问题合集(三)排序算法

作者: c5fc16271aee | 来源:发表于2017-10-16 21:52 被阅读0次

    插入排序——直接插入排序

    基本思想:

          每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。

    代码实现:

    插入排序——希尔排序

    基本思想:

    希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序;希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。

    代码实现:

    选择排序——简单选择排序

    基本思想:

          在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。

    代码实现:

    选择排序——堆排序

    详细地址

    交换排序——冒泡排序

    基本思想:

              对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素“浮”到顶端,最终达到完全有序

    代码实现:

    交换排序——快速排序

    基本思想:

    1)选择一个基准元素,通常选择第一个元素或者最后一个元素,

    2)通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素值小。另一部分记录的 元素值比基准值大。

    3)此时基准元素在其排好序后的正确位置

    4)然后分别对这两部分记录用同样的方法继续进行排序,直到整个序列有序。

    代码实现:

    归并排序

    基本思想:

    归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。

    代码实现:

    基数排序

    代码实现:

    相关文章

      网友评论

          本文标题:java问题合集(三)排序算法

          本文链接:https://www.haomeiwen.com/subject/mxyhuxtx.html