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

java问题合集(三)排序算法_第1张图片
java问题合集(三)排序算法_第2张图片

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

基本思想:

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

java问题合集(三)排序算法_第3张图片

代码实现:

java问题合集(三)排序算法_第4张图片

插入排序——希尔排序

基本思想:

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

java问题合集(三)排序算法_第5张图片

代码实现:


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

基本思想:

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

java问题合集(三)排序算法_第6张图片

代码实现:

java问题合集(三)排序算法_第7张图片

选择排序——堆排序

详细地址


交换排序——冒泡排序

基本思想:

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

java问题合集(三)排序算法_第8张图片

代码实现:

java问题合集(三)排序算法_第9张图片

交换排序——快速排序

基本思想:

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

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

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

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

java问题合集(三)排序算法_第10张图片

代码实现:

java问题合集(三)排序算法_第11张图片
java问题合集(三)排序算法_第12张图片

归并排序

基本思想:

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

java问题合集(三)排序算法_第13张图片

代码实现:

java问题合集(三)排序算法_第14张图片
java问题合集(三)排序算法_第15张图片

基数排序

java问题合集(三)排序算法_第16张图片

代码实现:

java问题合集(三)排序算法_第17张图片
java问题合集(三)排序算法_第18张图片

你可能感兴趣的:(java问题合集(三)排序算法)