
算法
mercyle
这个作者很懒,什么都没留下…
展开
-
java实现链表
链表分为arraylist和linklist主要实现链表的建立,链表的输出,链表的查找,链表的插入,链表的删除功能建立链表有头插法和尾插法package wd;class LinkNode{ public LinkNode next; public int data; public LinkNode(int data) { this.data=data; }}cl...原创 2019-12-15 15:34:11 · 179 阅读 · 0 评论 -
Java实现队列
1.基于数组实现队列注意:基于数组实现的队列会有假满的问题,可以使用循环队列解决package wd;class queue{ public int front; public int rear; public String[] data; public queue() { data=new String[10]; front=0; rear=0; } publ...原创 2019-12-15 14:43:07 · 194 阅读 · 0 评论 -
java实现栈
1.实现顺序栈package wd;class as{ public String data[]; public int top; public as() { data=new String[2]; top=-1; } //返回栈大小 public int length() { return top+1; } //判断栈空 public boolean ...原创 2019-10-22 22:29:54 · 142 阅读 · 0 评论 -
排序算法之堆排序
堆排序的思路:将待排序的数组先初始化为一个大顶堆或者小顶堆,交换第一个元素与最后一个元素,除去最后一个元素,重新构建大顶堆,然后交换第一个元素和倒数第二个元素。。。。package wd;import java.util.Arrays;public class sortdui { public static void swap(int[] arr, int i, int j...原创 2019-10-19 15:40:19 · 107 阅读 · 0 评论 -
排序算法之快速排序
快速排序的思路:选择第一个数为基准值,右边j先开始比较,如果找到比基准值小的数,则停下来,左边i开始比较,找到比基准值大的数,则停下来,两者交换,直到i和j相遇,交换基准值和相遇值,然后将数组根据基准值划分为两半剩下的两部分,每部分重复上面的操作,直到数组有序注意:必须是右边先开始比较package wd;class hahae{ public void sortkuaisu...原创 2019-10-19 12:22:06 · 136 阅读 · 0 评论 -
排序算法之直接插入排序
直接插入排序的思路:第一个数插入进去,自然有序第二个数与第一个数比较,逆序则交换第三个数与第二个数比较,逆序则交换,然后与第一个数比较,逆序则交换。。。。时间复杂度:o(N^2)空间复杂度:o(1)稳定性:稳定package wd;class hahale{ public void sortcharu(int a[]) { for(int i=0;i<...原创 2019-10-19 11:57:26 · 194 阅读 · 1 评论 -
排序算法之冒泡
冒泡排序的思路:比较相邻的两个数,如果逆序,则交换,最终最大的数在最后一个位置代码做了一点优化,加了一个flag,如果某趟所有相邻的数不需要交换。则表示所有数已经有序。排序提前结束。时间复杂度:o(N^2)----最坏的情况空间复杂度:o(1)稳定性:稳定排序package wd;class ha{ public void sortmaopao(int a[]) {...原创 2019-10-19 11:39:43 · 155 阅读 · 0 评论 -
排序算法之选择排序
选择排序的思路:依次选择最大,第二大,。。。。。的元素到数组的第一个,第二个。。。。。位置上第一趟:第一个元素依次与后面每个元素比较,如果比第一个元素大,则交换第二趟:第二个元素依次与后面每个元素比较,如果比第二个元素大,则交换。。。时间复杂度:o(N^2)空间复杂度:o(1)判断是不是稳定排序的依据是:相等的元素排序后,与之前的排列顺序相同稳定性:不稳定p...原创 2019-10-19 11:22:38 · 108 阅读 · 0 评论 -
颠倒整数
给定一个范围为 32 位 int 的整数,将其颠倒。例 1:输入: 123输出: 321 例 2:输入: -123输出: -321 例 3:输入: 120输出: 21 注意:假设我们的环境只能处理 32 位 int 范围内的整数。根据这个假设,如果颠倒后的结果超过这个范围,则返回 0class Solutionre { public int reverse(int x) { l...原创 2018-04-01 17:25:36 · 148 阅读 · 0 评论 -
回文数
判断一个整数是否是回文数。不能使用辅助空间。点击查看提示一些提示:负整数可以是回文数吗?(例如 -1)如果你打算把整数转为字符串,请注意不允许使用辅助空间的限制。你也可以考虑将数字颠倒。但是如果你已经解决了 “颠倒整数” 问题的话,就会注意到颠倒整数时可能会发生溢出。你怎么来解决这个问题呢?class Solution { public boolean isPalindrome(int x...原创 2018-04-01 17:58:18 · 148 阅读 · 0 评论 -
两数之和
给定一个整数数列,找出其中和为特定值的那两个数。你可以假设每个输入都只会有一种答案,同样的元素不能被重用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1] 您是否在真实的面试环节中遇到过这道题目呢?提示:数组 哈希表1.数组解法class Solution { pu...原创 2018-03-31 12:28:43 · 556 阅读 · 0 评论