![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
针对数据结构与算法的java实现
袖挽惊芒
这个作者很懒,什么都没留下…
展开
-
单链表的实现(带头结点/不带头结点)
带头结点#include<stdio.h>#include<stdlib.h>#include<iostream>using namespace std;//单链表结点的定义 typedef struct LNode{ int data; struct LNode *next; }LNode,*LinkedList;//单链表的初始化bool InitList(LinkedList &L){ L=(LNode *)malloc(.原创 2022-04-25 21:09:52 · 717 阅读 · 4 评论 -
十大排序算法之插入排序
前言:我们打扑克牌时,常常要理牌,理牌的时候,我们用的排序算法就是插入排序所以说,我们日常生活中,经常使用插入排序下面就让我们分析一下插入排序算法一、插入排序的基本思想:把n个待排序的元素看成一个有序表和一个无序表开始时有序表只包含一个元素,无序表中包含n-1个元素排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表二、插入排序的代码实现:public static void Inser原创 2021-08-30 14:11:21 · 498 阅读 · 0 评论 -
十大排序算法之选择排序
前言:选择排序也是十大排序算法里面比较简单的一种算法在性能上略优于冒泡排序(一般情况下)现在让我们分析一下选择排序算法一、选择排序的基本思想:1)选择排序利用两个for循环,第一个for循环的范围为0到arr.length-2(排序arr.length-1次)设置轮到的每个数组值为min,数组下标为minIndex2)第二个for的范围在i+1到arr.length-1(和i下标之后的相比较大小),如果arr[j]<min则重置min和minIndex3)第二个原创 2021-08-30 11:22:49 · 221 阅读 · 0 评论 -
十大排序算法之冒泡排序
前言:说到十大排序算法之中最简单的一个,冒泡排序一定当仁不让下面就让我们分析一下冒泡排序算法一、冒泡排序的基本思想1)冒泡排序利用两个for循环,第一个for循环的范围由0到arr.length-2(只用排序arr.length-1次),第二个for循环的范围由第一个for循环决定,为arr.length-i-2(排序数组前面的值,因为最后的值经过for循环逐渐到最后),即每执行一次外层for循环,内层for循环可以少排一次,数组尾部就为最大值,倒数第二位为次大值,依次往前排序,直至数组原创 2021-08-30 10:23:29 · 162 阅读 · 0 评论 -
八皇后问题回溯递归算法
1、问题提出:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法2、解决思路:1)将列A的皇后放在第一行以后,列B的皇后放在第一行已经发生冲突。这时候不必继续放列C的皇后,而是调整列B的皇后到第二行,继续冲突放第三行,不冲突了才开始进入列C2)将第1个位置的用for循环依次从1取到max,并用递归将递归过后的下一个皇后继续用for循环从1取到max,若过程中有不符合条件即改变皇后的值,直至n=8输出3、代码实现:原创 2021-08-29 21:21:30 · 133 阅读 · 0 评论 -
递归实现迷宫回溯问题(java实现)
1、需求:创建一个迷宫地图,在地图中输入起点和终点,找到通路2、算法思路分析:如果初始点的值不为0,则直接返回false,无法走通,如果初始点的值为0,先设置初始点的值为2,继续递归查找下一个点,若不为0,则return false,使上一层递归返回false,执行下一个if else判断,寻找其他的通路,若为0,则置为2,开始递归下一层寻找路,若if else语句全部都不匹配,则说明没有一条路走通,置点的值为3,回溯到上一点,如此,直至终点的值被置为23、代码实现:public clas原创 2021-08-29 20:31:08 · 142 阅读 · 0 评论 -
关于队列与栈的区别以及代码注意事项
目录文章目录前言一、栈二、队列前言栈和队列的区别不仅仅是栈是先进后出,而队列是先进先出在代码设计思路和代码规范上也有很多值得注意的地方笔者私以为,队列比栈有更多细节点需要注意下面我将用数组对这两种数据结构进行分析一、栈1、栈的一个最重要的特征就是栈的插入和删除只能在栈顶进行,即表尾删除2、代码实现栈的增删改查:class ArrayStack{ private int maxsize; private int stack[];原创 2021-08-29 13:11:14 · 595 阅读 · 0 评论