数据结构
Java语言编写的数据结构代码
禾日木目心
这个作者很懒,什么都没留下…
展开
-
排序算法稳定性
稳定性的定义:数组arr中有若干元素,其中A元素和B元素相等,并且A元素在B元素前面,如果使用某种排序算法排序后,能够保证A元素依然在B元素的前面,可以说这个该算法是稳定的。稳定性的意义:如果一组数据只需要一次排序,则稳定性一般是没有意义的,如果一组数据需要多次排序,稳定性是有意义的。例如要排序的内容是一组商品对象,第一次排序按照价格由低到高排序,第二次排序按照销量由高到低排序,如果第二次排序使用稳定性算法,就可以使得相同销量的对象依旧保持着价格高低的顺序展现,只有销量不同的对象才需要重新排序。这样既原创 2022-03-30 17:12:29 · 291 阅读 · 0 评论 -
快速排序(Java)
快速排序排序原理:.找一个基准值,用两个指针分别指向数组的头部和尾部;先从尾部向头部开始搜索一个比基准值小的元素,搜索到即停止,并记录指针的位置;再从头部向尾部开始搜索一个比基准值大的元素,搜索到即停止,并记录指针的位置;交换当前左边指针位置和右边指针位置的元素;.重复2,3,4步骤,直到左边指针的值大于右边指针的值停止。演示 快速排序 代码public class原创 2022-03-30 17:06:48 · 524 阅读 · 0 评论 -
归并排序(Java)
归并排序排序原理尽可能的一组数据拆分成两个元素相等的子组,并对每一个子组继续拆分,直到拆分后的每个子组的元素个数是1为止。.将相邻的两个子组进行合并成一个有序的大组;不断的重复步骤2,直到最终只有一个组为止。演示 归并排序 代码public class Merge { //辅助数组 private static int[] assist;原创 2022-03-30 15:36:25 · 112 阅读 · 0 评论 -
希尔排序(Java)
希尔排序(改进版插入排序)排序原理:选定一个增长量h,按照增长量h作为数据分组的依据,对数据进行分组;.对分好组的每一组数据完成插入排序;减小增长量,最小减为1,重复第二步操作。代码...原创 2022-03-30 12:19:49 · 817 阅读 · 0 评论 -
插入排序(Java)
插入排序排序原理:把所有的元素分为两组,已经排序的和未排序的;.找到未排序的组中的第一个元素,向已经排序的组中进行插入;倒叙遍历已经排序的元素,依次和待插入的元素进行比较,直到找到一个元素小于等于待插入元素,那么就把待插入元素放到这个位置,其他的元素向后移动一位;代码public class InsertionSort { public static void main(String[] args) { int[] arr = {14, 21, 2, 32, 2原创 2022-03-29 22:14:16 · 604 阅读 · 0 评论 -
选择排序(Java)
选择排序排序原理:每一次遍历的过程中,都假定第一个索引处的元素是最小值,和其他索引处的值依次进行比较,如果当前索引处的值大于其他某个索引处的值,则假定其他某个索引出的值为最小值,最后可以找到最小值所在的索引.交换第一个索引处和最小值所在的索引处的值代码public class SelectSort { public static void main(String[] args) { int[] arr = {14, 21, 2, 32, 29, 43, 43, 13原创 2022-03-29 21:41:56 · 333 阅读 · 0 评论 -
冒泡排序 (Java)
冒泡排序代码public class BubbleSort { public static void main(String[] args) { int[] arr = {14, 21, 2, 32, 29, 43, 43, 13, 12, 30, 19, 34, 38, 8, 48}; sort(arr); for (int a : arr) { System.out.print(a + ", ");原创 2022-03-29 20:31:11 · 336 阅读 · 0 评论