自定义博客皮肤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)
  • 收藏
  • 关注

原创 快速排序(Quick Sort)

使得low从前往后遍历,high从后往前遍历,一旦high对应的值小于枢轴,就将这个值赋给H.r[low],然后往后遍历low,一旦low对应的值大于枢轴,就将这个值赋给H.r[high],以此类推,直到how==high。在外层for循环中,第一次将最大数换到数组最后,第二次将第二大的数换到倒数第二的位置,经过length-1次循环就能使数组有序。再从low开始往后进行,55<60,不用做赋值操作,low继续往后,对应40,此时low==high。再将5和4比较,5>4,交换顺序:3 4 5 2 1。

2025-05-31 14:55:28 1472

原创 希尔排序(Shell Sort)

第一次1+dk将第一组的第二个元素插到第一组的正确位置,第二次i++变成2+dk将第二组的第二个元素插到第二组的正确位置,以此类推,完成一趟希尔排序。ShellSort函数和直接插入排序的代码很相近,无非是把外层for循环中1+1改成了1+dk,if判断中的i-1改成了i-dk,以及后面的语句也都是把1改成了dk,值得注意的是。,每次和遍历到的元素进行比较,直到遍历到比L.r[0]小或等于L.r[0]的元素,退出for循环,将L.r[0]放在这个元素后面的位置。插入时,从L.r[i-1]往前遍历,

2025-05-30 17:51:47 514

原创 二叉搜索判定树的创建

第二次比较:如果目标元素比12小就在左子树里搜索,此时high=mid-1=1,low=0,mid=0,arr[0]=4,左孩子就是4,每次要找比12小的元素都要先和12比较,再和4比较;传值调用low和high,一旦low>high就结束,否则将arr[mid]作为数的新结点,通过递归将数组创建结点的左子树(第一次比较:low=0,high=4,mid=2,arr[2]=12,所以根节点就是12。列如有序数组arr[5]={4,8,12,23,32},return -1;),这样就实现了BSDT的创建。

2025-05-19 11:49:21 2281

原创 BST(二叉搜索树)的构建和应用

欢迎大家一起来学习讨论!(其实本人在写这篇文章之前搜了一下看有没有人写,想着如果很多人写那我就不写了吧,结果有看到一个很多赞的大佬写得特别详细,包括更详细的分析和删除节点的算法,但是那个代码对于我这种菜狗来说简直太陌生了,然后我就想着写一篇初学者能看得懂的,下次我会更新折半查找判断树的算法(其实0人在意))例如:把以下5个关键字构成一棵二叉搜索树,先把12放到根结点,23比12大,作为12的右孩子,32比12大,比23大,作为23的右孩子,4比12小,作为12的左孩子,8比12小,比4大,作为4的右孩子。

2025-05-16 18:02:29 1424

原创 建二叉树并输出所找结点的祖先

if(a==0&&b==0){//找不到并且子树里面也找不到就出栈并且返回0 这个0同时也会影响它的祖先结点的结果,决定是否出栈。对于这样一个题目,如果建立的二叉树的结点只有左孩子,右孩子和自身数据的话,就不能向上依次遍历到祖先结点。第一行按照先序遍历的顺序给出了每个结点的编号 Ai​,为一整数,当 Ai​=0 时代表该结点为空结点。仔细捋一遍就是:从根结点开始遍历,将根结点存到栈中,再从根结点的左孩子和右孩子分别依次向下找,这样一来剩下的结点就都是目标结点的祖先结点了,并且根据栈先进后出的特性,只需要。

2025-05-10 19:58:10 472

空空如也

空空如也

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

TA关注的人

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