八大排序算法
文章平均质量分 90
秋夫人
这个作者很懒,什么都没留下…
展开
-
五十道编程小题目 --- 28 八大排序算法 java 之 03简单选择排序
3. 选择排序—简单选择排序(Simple Selection Sort)基本思想:在要排序的一组数中,选出最小(或者最大)的一个数,用第1个位置的数与剩下的n-1个数进行比较,然后,用第2个位置的数与剩下的n-2个数进行比较,以此类推。简单选择排序的示例: 算法实现:[java] view plain cop原创 2016-09-05 19:02:42 · 722 阅读 · 0 评论 -
五十道编程小题目 --- 28 八大排序算法 java 之 01直接插入排序
1.插入排序—直接插入排序(Straight Insertion Sort)基本思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。要点:设立哨兵,作为临时存储和判断数组边界之用。直接插入排序示例:如果碰见原创 2016-09-05 19:00:23 · 1233 阅读 · 0 评论 -
五十道编程小题目 --- 28 八大排序算法 java 之 02希尔排序
2. 插入排序—希尔排序(Shell`s Sort)希尔排序是1959 年由D.L.Shell 提出来的,相对直接排序有较大的改进。希尔排序又叫缩小增量排序基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。操作方法:选择一个增量序列t1,t2,…,tk,其中t原创 2016-09-05 19:01:52 · 1042 阅读 · 0 评论 -
五十道编程小题目 --- 28 八大排序算法 java 之 04堆排序
4.选择序—堆排序(Heap Sort)堆排序是一种树形选择排序,是对直接选择排序的有效改进。基本思想:堆的定义如下:具有n个元素的序列(k1,k2,...,kn),当且仅当满足时称之为堆。由堆的定义可以看出,堆顶元素(即第一个元素)必为最小项(小顶堆)。若以一维数组存储一个堆(Java数组从0开始,i为0到n-1),则堆对应一棵完全二叉树,且所有非叶结点的原创 2016-09-05 19:05:12 · 862 阅读 · 0 评论 -
五十道编程小题目 --- 28 八大排序算法 java 之 06快速排序
6. 交换排序—快速排序(Quick Sort)快速排序算法介绍 快速排序和归并排序都使用分治法来设计算法,区别在于归并排序把数组分为两个基本等长的子数组,分别排好序之后还要进行归并(Merge)操作,而快速排序拆分子数组的时候显得更有艺术,取一个基准元素,拆分之后基准元素左边的元素都比基准元素小,右边的元素都不小于基准元素,这样只需要分别对两个子数组排序即可原创 2016-09-06 13:14:41 · 1073 阅读 · 0 评论 -
五十道编程小题目 --- 28 八大排序算法 java 之 05冒泡排序
5. 交换排序—冒泡排序(Bubble Sort)基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。冒泡排序的示例: 算法的实现:import java.util.Random;publ原创 2016-09-06 13:16:09 · 1388 阅读 · 0 评论 -
五十道编程小题目 --- 28 八大排序算法 java 之 07归并排序
7. 归并排序(Merge Sort)基本思想:归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序示例: 合并方法:设r[i…n]由两个有序子表r[i…m]和r[m+1…n]组成,两个子表长度分别为m+原创 2016-09-07 15:34:43 · 1066 阅读 · 0 评论 -
五十道编程小题目 --- 28 八大排序算法 java 00
【程序28】 题目:对10个数进行排序 1.程序分析:八大排序算法扩展:八大排序算法排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。原创 2016-08-26 15:09:13 · 3879 阅读 · 1 评论