自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 资源 (1)
  • 收藏
  • 关注

原创 插入排序原理及其Java实现

插入排序原理:插入排序类似于我们在打麻将时整理麻将,我们需要将新来的麻将一张一张的插入到已经有序的麻将序列中。直到所有的麻将序列有序过程示意图假设待排序的麻将如下图所示:把第一张麻将三筒作为初始的有序序列;第一轮:当第二张麻将一筒到来时,由于其小于三筒,故交换这两张牌;第一、第二张牌组成的序列有序,第一轮排序结束。第二轮:当第三张牌四筒到来时,由于四筒大于三筒,故前三张牌有序,第二轮排序结束。第三轮:当第四张牌二筒到来时,由于二筒小于四筒,交换;交换后,二筒仍小于三筒,继续同三筒

2021-05-25 21:10:07 111

原创 归并排序原理及其Java代码

归并排序原理:要将一个数组排序,可以先(递归地)将它分成两半,对这两部分分别排序,然后将结果归并起来。归并排序是分治思想的典型应用。步骤分解:待排序的区间为[low,high][low,high][low,high],令mid=(low+high)/2mid=(low+high)/2mid=(low+high)/2,这样区间就被分成了[low,mid][low,mid][low,mid]和[mid+1,high][mid+1,high][mid+1,high];解决:使用归并排序递归对两个

2021-04-18 11:44:25 155 2

原创 二分查找及其Java实现(递归、非递归和Arrays.binarySearch方法)

二分查找功能:二分查找接受一个待查找的整数target和一个有序的int数组a作为参数。如果target存在于数组中,则返回它的索引,否则返回-1。前提:数组a有序。基本思想:在有序数组中,取中间数值和target进行比较,若target与该中间值相等,则查找成功;若target小于该中间值,则在中间值的左半区进行查找;若target大于该中间值,则在中间值的右半区进行查找。不断重复上述过程,直到查找到target,或者无法在数组中查找到target(查找失败)。时间复杂度:O(logn)O(lo

2021-04-15 20:40:36 144

原创 快速排序(Quick Sort)及其Java实现

基本算法基本思想:快速排序是一种分治的排序算法。它通过partition函数将待排序的数组区间切分成两部分,其中一部分的值比另一部分值都要小,所以可以对这两部分数组区间分别独立地排序,直到整个数组有序。partition函数(快速排序的关键):在待排序的数组区间内选择一个数,将它放到一个位置,使得它左边的数都比它小,右边的数都比它大,这个位置叫做枢轴(pivot)。平均时间复杂度:O(nlogn)O(nlogn)O(nlogn)平均空间复杂度:O(logn)O(logn)O(logn)Java

2021-04-12 19:28:27 161

原创 选择排序、冒泡排序过程及代码(Java)

选择排序、冒泡排序过程及代码(Java)选择排序排序过程:首先找到数组中最小的那个元素,之后,将它和数组中的第一个元素交换位置(如果第一个元素最小,那么它就和自身交换)。再次,在剩下的元素中找到最小元素,并将它和第二个位置上的元素交换。如此往复,直至数组完成排序。动图时间复杂度:O(n2)O(n^2)O(n2)特点:(1)运行时间和输入无关;(2)交换次数最少Java代码class MySelectionSort{ public static void select

2021-04-07 20:58:05 202 4

instances and results.rar

instances and results.rar

2021-06-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除