算法
文章平均质量分 83
梦想成为光头强!
这个作者很懒,什么都没留下…
展开
-
刷题笔记(十二)--复习:排序算法
目录系列文章目录前言一丶插入排序和其进阶希尔排序<1>插入排序1.具体实现2.关于复杂度<2>希尔排序二丶选择排序和其进阶堆排序总结系列文章目录刷题笔记(一)–数组类型:二分法刷题笔记(二)–数组类型:双指针法刷题笔记(三)–数组类型:滑动窗口刷题笔记(四)–数组类型:模拟刷题笔记(五)–链表类型:基础题目以及操作刷题笔记(六)–哈希表:基础题目和思想刷题笔记(七)–字符串:经典题目刷题笔记(八)–双指针:两数之和以及延伸刷题笔记(九)–字符串:KMP算法刷题笔原创 2022-05-26 23:40:47 · 438 阅读 · 0 评论 -
算法--交换排序
冒泡排序和快速排序一丶冒泡排序思想和代码具体分析二丶快速排序一丶冒泡排序思想和代码冒泡排序可能是我们在JavaSE阶段第一个接触的算法,其基本思想就是:从第一个开始遍历,然后如果当前元素大于下一个元素,那么交换两个元素的位置,这样就能确保一轮遍历下来最后一个元素就是当前元素集合的最大值。所以有多少个元素就遍历多少轮。接着给出代码: public static void swap(int[] arr,int left,int right){ int tmp = arr[left原创 2021-11-19 21:58:49 · 447 阅读 · 0 评论 -
算法--选择排序
选择排序和堆排序一丶选择排序思想和代码具体分析二丶堆排序思想和代码具体分析(PS:这里所有的排序都以升序为主)一丶选择排序思想和代码关于选择排序的思想其实很好理解,就是每一次选出最大元素放在末尾,或者说是选出最小元素放在开头以此来获得升序集合。但是注意,如果本身就在末尾或者开头那就没有必要交换。下面给出代码:public static void selectSort(int[] arr){ //定义end指针用来交换最大值 int end = arr.length原创 2021-11-16 23:12:09 · 67 阅读 · 0 评论 -
算法--插入排序
插入排序和希尔排序一丶插入排序思想和代码具体分析二丶希尔排序思想和代码具体分析一丶插入排序思想和代码插入排序就是把要插入的元素插入一个已经排好了的有序数列当中。现在,如果说我们要插入7这个末尾元素,那么我们要怎么办呢?那么按照插入排序的思想,那么就需要从后往前开始遍历,每遍历一个不符合要求的元素就把此元素往后移一位直到正确的插入位置。也就是6和8之间。这是针对于单趟来说。那么从前往后可不可以呢?当然可以,可是这里我们只针对从后往前来说。如果说是一个比较乱的数组,那么我们就要从数组第二个元素开始,原创 2021-11-14 17:37:16 · 819 阅读 · 0 评论