- 博客(11)
- 收藏
- 关注
原创 行列有序的矩阵中查找某个数是否存在
从右上角的坐标开始,若是比要找的数小,则向下;若比要找的数要大,则向左。直到到达左下角。public static void seek(int[][] arr,int num){ if(arr==null||arr.length==0){ return; } int ar = 0; int ac = arr[0].length-1; boolean flag = f...
2018-10-08 15:12:01
1069
原创 之字形打印矩阵
初始化两个坐标点,一个每次向右,到达尽头往下;一个每次向下,到达尽头往右;打印两点之间的对角线public static void zigzag(int[][] arr){ if(arr==null){ return; } int ar = 0,ac = 0,br = 0,bc = 0; int rl = arr.length-1; int cl = arr[...
2018-10-08 15:09:12
399
原创 反转单向双向链表
class Node{ int value; Node next; Node ref; public Node(int value){ this.value = value; }}public class ReverseList { public static Node reverseList(Node head){ Node oldNext = null; N...
2018-10-08 15:06:04
174
原创 旋转n*n的矩阵和转圈打印矩阵
旋转矩阵public static void Rotate(int[][] arr){ int ar = 0; int ac = 0; int dr = arr.length-1; int dc = arr[0].length-1; while(ar<dr){ rotateMatrix(arr,ar++,ac++,dr--,dc--); } } p...
2018-09-25 22:10:41
706
原创 反转单链表和双链表
反转单链表和双链表,额外空间复杂度为O(1)//两个变量,一个保存当前节点的之前的next,一个保存当前节点,public static Node reverseList(Node head){ Node oldNext = null; Node newNext = null; while(head.next!=null){ //将当前节点的next保存...
2018-09-25 22:08:24
140
原创 使用栈实现队列结构、使用队列实现栈结构
使用栈实现队列结构public static class stackToQueue{ Stack<Integer> stack; Stack<Integer> help; public stackToQueue(){ stack = new Stack<Integer>(); help = new Stack<Integ...
2018-09-22 11:47:47
464
原创 使用数组实现大小固定的栈和队列
实现栈的基本操作和返回最小值public static class ArrayStack{ private int index = 0; private int[] arr; private int[] help; public ArrayStack(int size){ if(size<1){ return; } arr = new i...
2018-09-22 11:44:30
275
原创 堆排序
public static void heapSort(int[] arr){ if(arr==null||arr.length<2){ return; } //每次加一个节点, for(int i=0;i<arr.length;i++){ //与根节点对比,大则上浮,逐步建立大根堆 heap(arr,i); } int length ...
2018-09-21 17:08:41
113
原创 随机快排(基于荷兰国旗问题)
/* * 随机快排 * * 使用数组的最后一位为基准进行排序, * 初始化两个变量less和more,表示小于和大于这个数的数的边界,遍历数组, * 若是小于这个数,将less+1位置上的数与这个数进行交换,less+1,l+1 * 若是大于这个数,将more-1位置上的数与这个数进行交换,more-1,l不变 * 若是等于这个数,l+1 * 遍历完之后,将最后一个数...
2018-09-21 17:07:50
159
原创 荷兰国旗问题
今天看了左神的荷兰国旗问题,照葫芦画瓢写出的荷兰国旗问题:给定一个数组,和一个数,把小于的放在数的左边,大于的放在右边,等于的放在中间public static int[] partition(int[] arr,int l,int r,int num){ //小于num的区域 int less = l-1; //大于num的区域 int more = r+1; //...
2018-09-20 21:44:21
428
原创 关于归并排序和逆序对
今天学习了归并排序和逆序对,逆序对经过多次测试才成功,所以传上来以作纪念,新手创作,不喜勿喷归并排序:public static void MergeSort1(int [] arrs){ if(arrs==null||arrs.length<2){ return; } MergeSort1(arrs,0,arrs.length-1); } public ...
2018-09-18 22:12:13
189
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅