Java数据结构_排序 武汉大学.ppt
上传人:sy****28 上传时间:2024-09-12 格式:PPT 页数:24 大小:363KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

Java数据结构_排序 武汉大学.ppt

Java数据结构_排序武汉大学.ppt

预览

免费试读已结束,剩余 14 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

数据结构(Java语言版)第三节排序的分类排序的特性例如:交换式排序冒泡排序法举例说明冒泡排序算法的排序过程publicvoidbubbleSort(int[]a){intt=0;intn=a.length;for(inti=1;i<n;i++){//第一重循环进行n-1趟循环for(intj=0;j<n-i;j++){//在进行第i趟排序时进行n-i次两两比较if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}}冒泡排序的优点和缺点快速排序法快速排序快速排序是一种二叉树结构的交换排序方法。快速排序算法的基本思想是:设数组a中存放了n个数据元素,low为数组的低端下标,high为数组的高端下标,从数组a中任取一个元素(通常取a[low])做为标准元素,以该标准元素调整数组a中其他各个元素的位置,使排在标准元素前面的元素均小于标准元素,排在标准元素后面的均大于或等于标准元素。这样一次排序过程结束后,一方面将标准元素放在了未来排好序的数组中该标准元素应位于的位置上,另一方面将数组中的元素以标准元素为中心分成了两个子数组,位于标准元素左边子数组中的元素均小于标准元素,位于标准元素右边子数组中的元素均大于等于或标准元素。对这两个子数组中的元素分别再进行方法类同的递归快速排序。算法的递归出口条件是low≥high。快速排序算法各次快速排序过程该排序方法为不稳定排序,即排序后数值相同的元素之间相对位置会发生改变。此方法是所有排序方法中速度最快的。直插入排序直接插入排序的基本思想是:顺序地把待排序的数据元素按其值的大小插入到已排序数据元素子集合的适当位置。子集合的数据元素个数从只有一个数据元素开始逐次增大。当子集合大小最终和集合大小相同时排序完毕。直接插入排序过程直接插入排序过程直接插入排序过程直接选择排序直接选择排序的基本思想是:从待排序的数据元素集合中选取最小的数据元素并将它与原始数据元素集合中的第一个数据元素交换位置;然后从不包括第一个位置上数据元素的集合中选取最小的数据元素并将它与原始数据元素集合中的第二个数据元素交换位置;如此重复,直到数据元素集合中只剩一个数据元素为止。下图是直接选择排序算法排序过程的一个示例publicstaticvoidselectSort(int[]a){intmin;for(inti=0;i<a.length;i++){//进行第i趟排序,共n-1趟min=i;for(intj=i+1;j<a.length;j++){//在待排序列中查找关键之最小的记录if(a[j]<a[min]){min=j;}}if(min!=i){inttemp=a[i];a[i]=a[min];a[min]=temp;//交换}}}OVER!