java入门一DAY06------从数据结构开始6
2014-04-02 00:15
253 查看
排序
排序的分类:
插入排序(直插排序、二分排序、希尔排序)
交换排序(冒泡排序、快速排序)
选择排序(直接排序、树形排序、堆排序)
归并排序(二路归并排序、多路归并)
分配排序(多关键字排序、基数排序)
排序算法的稳定性:
关键码相同的数据对象在排序过程中是否保持前后次序不变。
如果不变,则该排序方法是稳定的,否则是不稳定的。
排序的时间开销
它是关键衡量算法的好坏标准,通常算法执行中的数据比较次数和数据的移动次数来衡量的
一、插入排序
基本原理:每步将一个待插序的对象,按照其关键码的大小,插入到前面已经排好序的一组对象适当位置上,直到对象全部插上
常用的方法:直接插入法,折半插入法,shell排序等
1 直接插入法
思想:当插入第i个数据对象时,前面的数据对象V1 V2 V3...Vi-1已经排序好序,此时用Vi的关键码与V1 V2...Vi-1的关键码顺序进行比较,找到想要的插入位置j,即将vi插入,位置j以后的对象向后瞬移。
2 折半插入法
基本思想:当插入第i个数据对象时,前面的数据对象V1 V2 V3...Vi-1已经排好序,此时用Vi的关键码与V1 V2...Vi-1的关键码按照折半的方法进行比较,找到插入位置j,插入,位置j以后的对象顺序向后移动
3 shell排序
该方法是由D L shell 提出 又称缩小增量排序
基本思想:该待排序的数据对象有n个,首先取一个整数d<n作为间隔,将全部对象分为d个子序列,所有距离为d的对象放在同一个序列中,在每一个子序列中分别施行直接插入排序,然后缩小间隔d,如取d=d/2,重复上述的子序列划分和排序工作,直到最后取d为1为止
二、交换排序
交换排序的基本原理,是在待排序的记录顺序中,两两比较待排序记录的关键字,并交换不满足要求的偶对,直到整个序列中的所有记录都满足要求为止
常见的方法有:冒泡 快速排序
1 冒泡排序
基本思想:在待排序中,从待排序R1开始,两两比较R1,key与Ri+1,KEY(i=1,2,3,....N-1),第1趟比较完毕后,RN,key为关键字最大的
再从待排序记录R1开始,两两比较Ri与key
以此类推 排序完成
2 快速排序
基本思想:在待排序中选出一个节点为基准值,大于放右,小于放左,依次排序。
三、选择排序
选择排序基本原理是将待排序的记录分为已排序和未排序两组,依次将未排序的记录中关键字码最小的记录插入已排序的组中
常见的方法有:简单选择排序,树型(锦标赛排序、堆排序)
1简单排序
思想 选择一个元素与后面的比较
实现步骤:
1 从所有的n个记录中,选取关键字值最小的记录,与第一个记录交换位置
2 从所有的n-i+1个记录中,选取关键字值最小的记录,与第i个记录交换位置
3 i取1 2 3...n-1,重复执行
四、归并排序
归并排序的基本思路:通过对两个或两个以上的有序节点序列合并来实现排序
常见的归并排序方法有:2路归并排序,多路归并排序等
---------------------- 拖走FM----期待与您交流! --------
收音机,电台,网上电台,广播,在线广播,网络广播,广播电台,网络电台,在线电台,电台在线收听,广播电台在线收听,网络电台在线收听,在线收听电台,fm收音机,网络收音机,广播下载,在线收音机,收音机软件下载,电台软件下载,网络收音机下载--------------
---------------------- 拖走FM----期待与您交流! --------
排序的分类:
插入排序(直插排序、二分排序、希尔排序)
交换排序(冒泡排序、快速排序)
选择排序(直接排序、树形排序、堆排序)
归并排序(二路归并排序、多路归并)
分配排序(多关键字排序、基数排序)
排序算法的稳定性:
关键码相同的数据对象在排序过程中是否保持前后次序不变。
如果不变,则该排序方法是稳定的,否则是不稳定的。
排序的时间开销
它是关键衡量算法的好坏标准,通常算法执行中的数据比较次数和数据的移动次数来衡量的
一、插入排序
基本原理:每步将一个待插序的对象,按照其关键码的大小,插入到前面已经排好序的一组对象适当位置上,直到对象全部插上
常用的方法:直接插入法,折半插入法,shell排序等
1 直接插入法
思想:当插入第i个数据对象时,前面的数据对象V1 V2 V3...Vi-1已经排序好序,此时用Vi的关键码与V1 V2...Vi-1的关键码顺序进行比较,找到想要的插入位置j,即将vi插入,位置j以后的对象向后瞬移。
2 折半插入法
基本思想:当插入第i个数据对象时,前面的数据对象V1 V2 V3...Vi-1已经排好序,此时用Vi的关键码与V1 V2...Vi-1的关键码按照折半的方法进行比较,找到插入位置j,插入,位置j以后的对象顺序向后移动
3 shell排序
该方法是由D L shell 提出 又称缩小增量排序
基本思想:该待排序的数据对象有n个,首先取一个整数d<n作为间隔,将全部对象分为d个子序列,所有距离为d的对象放在同一个序列中,在每一个子序列中分别施行直接插入排序,然后缩小间隔d,如取d=d/2,重复上述的子序列划分和排序工作,直到最后取d为1为止
二、交换排序
交换排序的基本原理,是在待排序的记录顺序中,两两比较待排序记录的关键字,并交换不满足要求的偶对,直到整个序列中的所有记录都满足要求为止
常见的方法有:冒泡 快速排序
1 冒泡排序
基本思想:在待排序中,从待排序R1开始,两两比较R1,key与Ri+1,KEY(i=1,2,3,....N-1),第1趟比较完毕后,RN,key为关键字最大的
再从待排序记录R1开始,两两比较Ri与key
以此类推 排序完成
2 快速排序
基本思想:在待排序中选出一个节点为基准值,大于放右,小于放左,依次排序。
三、选择排序
选择排序基本原理是将待排序的记录分为已排序和未排序两组,依次将未排序的记录中关键字码最小的记录插入已排序的组中
常见的方法有:简单选择排序,树型(锦标赛排序、堆排序)
1简单排序
思想 选择一个元素与后面的比较
实现步骤:
1 从所有的n个记录中,选取关键字值最小的记录,与第一个记录交换位置
2 从所有的n-i+1个记录中,选取关键字值最小的记录,与第i个记录交换位置
3 i取1 2 3...n-1,重复执行
四、归并排序
归并排序的基本思路:通过对两个或两个以上的有序节点序列合并来实现排序
常见的归并排序方法有:2路归并排序,多路归并排序等
---------------------- 拖走FM----期待与您交流! --------
收音机,电台,网上电台,广播,在线广播,网络广播,广播电台,网络电台,在线电台,电台在线收听,广播电台在线收听,网络电台在线收听,在线收听电台,fm收音机,网络收音机,广播下载,在线收音机,收音机软件下载,电台软件下载,网络收音机下载--------------
---------------------- 拖走FM----期待与您交流! --------
相关文章推荐
- java入门一DAY01------从数据结构开始1
- java入门一DAY02------从数据结构开始2
- java入门一DAY03------从数据结构开始3
- java入门一DAY05------从数据结构开始5
- JAVA数据结构---二叉树入门
- Java 入门之开始面向对象的编程
- JAVA数据结构---二叉树入门
- 数据结构(Java)——树的入门学习
- JAVA入门.零基础学Java语言 MOOC 第5周 数组(数据结构)
- Java快速入门,从这六条技能开始
- Kotlin入门第一课:从对比Java开始
- java 从零开始,学习笔记之基础入门(开始)
- 大数据入门---------------------Java部分开始
- Activit最入门学习文档,从如何创建项目开始共20章,看完,任何Java项目集成无压力
- JAVA数据结构---二叉树入门
- Eclipse平台入门之一:什么是Eclipse,我们将开始介绍Java 开发环境(JDE)。
- JAVA数据结构---二叉树入门
- java数据结构:链表与迭代器入门程序
- JAVA数据结构---二叉树入门
- 【Java Tutorial】: Getting Started(开始入门)【官方原版教程】