自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 Java归并排序

归并排序采用的是分治(divide-and-conquer)法思想。基本思想:将待排序元素分成大小大致相同的2个子集合,分别对2个子集合进行排序,最终将排好序的子集合合并成为所要求的排好序的集合。 //分+合方法 public static void mergeSort(int[] arr, int left, int right, int[] temp) { if(left < right) { int mid = (left + right) /

2020-11-20 17:54:52 97

原创 Java基数排序

**基数排序(radix sort)**属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog®m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的稳定性排序法。public static void sort(int[] number){ //得到数组

2020-11-20 17:53:40 94

原创 Java快速排序

**快速排序(Quick Sort)**的每一轮处理其实就是将这一轮的基准数归位,直到所有的数都归位为止,排序就结束了 public static int[] qsort(int arr[],int start,int end) { //在这个序列中随便找一个数作为基准数(就是一个用来参照的数),此处以第一个数为基准 int pivot = arr[start]; int i = start; int j = end; //为

2020-11-20 17:52:20 93

原创 Java希尔排序

**希尔排序(Shell’s Sort)**是插入排序的一种,是直接插入排序算法的一种更高版本的改进版本。把记录按步长gap分组,对每组记录采用直接插入排序方法进行排序;随着步长逐渐减小,所分成的组包含的记录越来越多;当步长值减小到1时,整个数据合成一组,构成一组有序记录,完成排序;//对交换式的希尔排序进行优化->移位法 public static void sort(int[] arr) { // 增量gap, 并逐步的缩小增量 for (int

2020-11-20 17:51:00 82

原创 回文数

回文数LeetCode题库 第9题判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。121 true -121 false /** * 将数字本身反转,然后将反转后的数字与原始数字进行比较,如果它们是相同的,那么这个数字就是回文。 * 但是,如果反转后的数字大于 \text{int.MAX}int.MAX,我们将遇到整数溢出问题。 * * 按照这个想法,为了避免数字反转可能导致的溢出问题,为什么不考虑只反转

2020-11-20 17:48:12 51

原创 字符串转换整数 (atoi)

字符串转换整数 (atoi)LeetCode题库 第8题请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,

2020-11-20 17:45:07 73

原创 整数反转

整数反转LeetCode题库 第7题给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123 输出: 321示例 2:输入: -123 输出: -321示例 3:输入: 120 输出: 21注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 public static int reverse(int x) { long n

2020-11-20 17:41:38 45

原创 Z字形变换

Z字形变换LeetCode题库 第6题将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。输入: s = “LEETCODEISHIRING”, numRows = 4输出: “LDREOEIIECIH

2020-11-20 17:38:35 78

原创 两数相加

两数相加LeetCode题库 第2题给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储 一位字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8原因:342 + 465 = 807public class Questio

2020-11-20 17:35:49 54

原创 两数之和

两数之和LeetCode题库 第1题给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]public static int[] twoSum(int[] nums, int target) {

2020-11-20 17:32:46 60

原创 最长回文子串

最长回文子串LeetCode题库 第5题给定一个字符串 s,找到 s 中最长的回文子串回文串(palindromic string)是指这个字符串无论从左读还是从右读,所读的顺序是一样的;简而言之,回文串是左右对称的。示例 1:输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd” 输出: “bb”代码一:暴力求解在这里插 /** * O(n^3)时间复杂度方法——暴力求解 * 1.思想: *

2020-11-13 17:36:48 69

原创 寻找两个正序数组的中位数

寻找两个正序数组的中位数LeetCode题库 第4题给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗?示例 1:输入:nums1 = [1,3], nums2 = [2] 输出:2.00000 解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4] 输出:2.50000 解释

2020-11-13 17:28:14 63

原创 无重复字符的最长子串

无重复字符的最长子串LeetCode题库 第三题给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,

2020-11-13 17:23:32 52

原创 Java插入排序

插入排序(Insert Sort)基本思想:把n个待排序的元素看成一个有序列表和无序列表,开始的有序列表只有一个元素,无序列表中含有n-1个元素,排序过程中每次从无序列表中取出第一个元素,将其与有序表中的元素从后往前逐个比较,并插入到合适的位置,完成排序。代码实现private static void sort(int[] arr){ int insertVal = 0; //待插入元素的值 int insertIndex = 0; //待插入元素要插入的坐标

2020-11-13 17:15:03 45

原创 Java选择排序

选择排序(Select Sort)基本思想:也是简单排序,第一次从arr[0]–arr[n-1]中选出最小的值与arr[0]交换,第二次从arr[1]–arr[n-1]中选出最小元素与arr[1]交换,第i次从arr[i-1]–arr[n-i]中选出最小元素与arr[i-1]交换,通过n-1次获得有序序列。代码实现//选择排序时间复杂度是 O(n^2) private static void sort(int[] arr){ for (int i = 0; i < arr.

2020-11-13 17:09:08 64

原创 Java冒泡排序

冒泡排序(Bubble Sort)基本思想:对待排序的序列从前往后,依次比较相邻的元素的值,若发现逆序则交换。冒泡排序优化:排序过程中,各个元素不断接近有序的位置,如果一趟交换下来没有进行过交换,说明已经有序。可以在排序过程中添加一个flag判断元素是否进行过交换。代码实现//冒泡排序 每次选出最大的元素 时间复杂度O(n^2)public static int[] sort(int[] arr){//创建临时变量int temp;for (int i = 0; i < arr.len

2020-11-13 16:57:09 52

空空如也

空空如也

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

TA关注的人

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