java排序算法
java排序算法
神枪达
这个作者很懒,什么都没留下…
展开
-
Java算法——二分查找
把数组一分为二,先判断在左边还是在右边,再进行查找,查找目标值在数组中的位置。前提:数组必须是有序的。原创 2023-08-18 20:00:00 · 28 阅读 · 0 评论 -
Java排序算法——桶排序
/ [128] —— 如果排序的字符串不仅包含数字字符,还包含英文字符,加减乘除等一些符号,范围在ASCII码之内(0~127)之间,可以把长度改成128,包含0~127。——使用[128]时使用。用charAt(i)取到的字符 减去 '0'或者48 可以得到字符索引位置。—— 使用完桶之后要清空桶里的数据。// 0~127 因为手机号是11位。原创 2023-08-02 21:05:42 · 222 阅读 · 0 评论 -
Java排序算法——单边快排和双边快排
2. j指针负责找到比基准点小的元素,i指针指责找到比基准点小的元素,一旦找到则与i进行交换。核心思想:每轮找到一个基准点元素,把比它小的放到它左边,比它大的放到它右边,这称为分区。2. j找比基准点小的,i找比基准点大的,一旦找到,二者进行交换。i在最左侧,j在最右侧,pv是基准点,默认在最左侧。3. 最后基准点与i交换,i即为基准点最终索引。3. 最后基准点与i交换,i即为分区位置。1. 选择最右元素作为基准点元素。i从左向右,j从右向左。1. 选择左侧元素作为基准点。原创 2023-08-03 18:31:21 · 150 阅读 · 0 评论 -
Java排序算法——选择排序和堆排序
(因为堆顶的元素是最大值,将堆顶元素移除后,破坏了大顶堆,所以要重新建立大顶堆,再次建立大顶堆后,再移动堆顶元素,从而将数组排序。2. 每次将堆顶的元素(最大值)交换到末尾,调整堆顶元素,让他重新符合大顶堆的特性。1. 每一轮选择,找出最大(最小)的元素值,并把他们交换到合适的位置。1. 建立大顶堆,把数组变成堆的形式。原创 2023-08-07 18:41:43 · 21 阅读 · 0 评论 -
Java排序算法——冒泡排序
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。第二轮遍历从i开始,速度更快。基础班i每次都要从0开始遍历。如果第一个比第二个大,就交换他们两个。针对所有的元素重复以上的步骤,除了最后一个。原创 2023-08-07 20:03:51 · 30 阅读 · 0 评论 -
Java排序算法——归并排序
2. 进行判断(某个数组过长,一个数组复制完毕后另一个数组还有数据,直接略过比较,进行复制)从数组a1,从索引x位置开始,复制到数组a2,索引y位置,复制的元素个数为z个。a1表示第一个数组,i表示第一段数组的开头,iEnd表示第一段数组的结尾。1. 第一段有序数组和第二段有序数组进行比较,较小的放入第二个数组。j表示第二段数组的开头,jEnd表示第二段数组的结尾。合——合并两个有序数(需要知道数组的长度)分——每次从中间切分,处理数据少一半。治——当数据仅剩下一个的时候认为有序。原创 2023-08-07 20:25:56 · 45 阅读 · 0 评论 -
Java排序算法——插入排序和希尔排序
/i-- 要改成 i = i - gap。原创 2023-08-04 19:01:02 · 30 阅读 · 0 评论