- 博客(16)
- 收藏
- 关注
原创 手工实现LinkedList类
import java.lang.annotation.Native;import java.util.LinkedList;class Node{Node previousNode;Object element;Node nextNode;public Node() {// TODO Auto-generated constructor stubpreviousNode = nu...
2019-06-14 20:09:40
118
原创 手工实现ArrayList
public class sxtArrayList {private static final Object ArrayIndexOutOfBoundsException = null;private int size;private Object[] elementData;public sxtArrayList() {// TODO Auto-generated construct...
2019-06-14 16:40:13
90
原创 快速排序
思想:如果有N个元素需要排序,那么首先从N个元素中找到最小的那个元素与第0位置上的元素交换(说明一点,如果没有比原本在第0位置上的元素小的就不用交换了,后面的同样是),然后再从剩下的N-1个元素中找到最小的元素与第1位置上的元素交换,之后再从剩下的N-2个元素中找到最小的元素与第2位置上的元素交换,…直到所有元素都排序好(也就是直到从剩下的2个元素中找到最小的元素与第N-2位置上的元素交换)。...
2019-06-05 20:51:20
148
原创 希尔排序
思想:设待排序元素序列有n个元素,首先取一个整数increment(小于n)作为间隔将全部元素分为increment个子序列,所有距离为increment的元素放在同一个子序列中,在每一个子序列中分别实行直接插入排序。然后缩小间隔increment,重复上述子序列划分和排序工作。直到最后取increment=1,将所有元素放在同一个子序列中排序为止。由于开始时,increment的取值较大,每...
2019-06-05 15:44:47
100
原创 插入排序
思想:从第二个元素起 与其面的元素比较 若第i个元素比第i-1个元素小 则 将第i-1个元素保存在temp临时变量中,从第i-1个元素起递减 寻找比第i个元素小的那个 将比他大的都向后移动 然后将第i个元素 插入到比i小的元素的后一位 即完成了插入排序代码如下:public static void InsertSort(int[] arr) {int len = arr.length;f...
2019-06-04 17:35:11
86
原创 快速排序
思想:设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它左边,所有比它大的数都放到它右边,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。代码如下:public static void QuickSort(int[] arr, i...
2019-06-04 17:17:25
374
原创 冒泡排序
思想:每一轮选出一个最大的值 放在数组末尾 因此n个元素应该比较n-1轮以确定n-1个最大的数(最小的数肯定在最前面了)而每一轮中通过两两比较 如果前一个数比后一个数大 就交换两者大小。第i轮确定了最大的i个数 这i个数由小到大放在数组的最后,因此,第i轮中比较大小只需要比较前n-1-i个数。下面为代码:public class DemoButtleSort {public static...
2019-06-02 18:40:59
84
原创 汉诺塔问题
public static void Hanoi(int n,char from,char in,char to) {if(n == 1) {System.out.println(“把第1个盘子从”+from+“移动到”+to);}else {Hanoi(n-1, from, to, in);System.out.println(“第”+n+“个盘子”+from+“移动到”+to);H...
2019-06-02 18:08:18
81
原创 二分查找
1.递归:public static int BinarySrarch(int[]a,int target,int low,int high) {int mid = (low+high)/2;if(a[mid]==target) return mid;if (target<a[mid]) {high = mid-1;return BinarySrarch(a, target,lo...
2019-06-02 17:24:24
86
原创 斐波那契问题
1.递归方法:public static int Febonacci(int index) {//获取斐波那契数列第index项元素 用递归方法实现if(index == 1 || index == 2) return 1;if(index>2) {return Febonacci(index-1) + Febonacci(index-2);}return -1;}2.非递归...
2019-06-02 17:23:28
453
原创 回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。class So...
2019-04-03 18:44:05
86
原创 整数反转
给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。解题思路反转整数的思路是从一个数的最后一位开始,依次向前遍...
2019-04-03 18:17:00
91
原创 最小公倍数 最大公约数 化简
题目:输入两个正整数 m 和 n,求其最大公约数和最小公倍数。 /** 在循环中, 只要除数不等于 0,用较大数除以较小的数, 将小的一个数作为下一轮循环的 大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为 0,返回较大 的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。 * /import java.util.*;public class MaxCommonD...
2019-03-30 14:51:50
276
原创 正整数分解质因数
题目:将一个正整数分解质因数。例如:输入 90,打印出 90=2335 。 程序分析:对 n 进行分解质因数,应先找到一个最小的质数 k,然后按下述步骤完成: (1)如果这个质数恰等于 n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果 n > k,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商 ,作为新的正整数你 n,重复执行第一步。 (3)如果 n 不能...
2019-03-30 11:56:27
300
原创 水仙花数
题目:判断 101-200 之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除 2 到 sqrt(这个数 ),如果能被整除, 则表明 此数不是素数,反之是素数public class PrimeNumber {int count = 0;boolean Judging(int num){boolean flag = false;for(int i = 2 ; ...
2019-03-30 11:38:02
92
原创 菲波拉契数列问题
题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?public class Rabbit {public static void main(String[] args) {int month;int f1 = 1;int f2 = 1;int f;System.out.printl...
2019-03-30 10:57:14
161
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人