你的位置:首页 > 软件开发 > Java > Java程序员必知的8大排序

Java程序员必知的8大排序

发布时间:2016-03-25 11:00:13
1、直接插入排序 (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。 (2)实例 3)用java实现 2、希尔 ...

Java程序员必知的8大排序

Java程序员必知的8大排序

 

1、直接插入排序

 

(1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排

好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数

也是排好顺序的。如此反复循环,直到全部排好顺序。

 

 (2)实例

 

Java程序员必知的8大排序

3)用java实现

 

Java程序员必知的8大排序

 

2、希尔排序(最小增量排序)

 

(1)基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。

 

(2)实例:

 

Java程序员必知的8大排序

(3)用java实现

 

Java程序员必知的8大排序

 

3、简单选择排序

 

(1)基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;

 

然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。

 

(2)实例:

 

Java程序员必知的8大排序

(3)用java实现Java程序员必知的8大排序

 

5、冒泡排序

 

(1)基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。

 

(2)实例:

 

Java程序员必知的8大排序

(3)用java实现

 

Java程序员必知的8大排序

 

6、快速排序

 

(1)基本思想:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。

 

(2)实例:

 

Java程序员必知的8大排序

(3)用java实现

 

Java程序员必知的8大排序

 

7、归并排序

 

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

 

(2)实例:

Java程序员必知的8大排序

(3)用java实现

 

Java程序员必知的8大排序Java程序员必知的8大排序

 


原标题:Java程序员必知的8大排序

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。