算法研究
chun_soft
再忙也不要忘记学习!
展开
-
1、HashMap排序
1、问题已知一个HashMap< Integer,User>集合,User有 name(String) 和 age(int) 属性,请写一个方法实现对HashMap的排序功能。该方法接收HashMap< Integer,User>为形参,返回类型为HashMap< Integer,User>,需要对HashMap中的User的age进行排序,排序中key:value键值对不能拆开。tips:Link原创 2017-02-23 19:35:01 · 587 阅读 · 0 评论 -
java排序算法(4)—冒泡排序
1、概述 排序就是将一组对象按照某种逻辑顺序重新排列的过程。 冒泡排序是依次比较相邻的两个数,将小数放在前面,大数放在后面。 冒泡排序基本思想: (1)第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。(2)重复第一趟步骤,直至全部排序完成。2、代码实现package com.chunso原创 2017-03-08 09:47:07 · 584 阅读 · 0 评论 -
java排序算法(1)—选择排序
1、概述 排序就是将一组对象按照某种逻辑顺序重新排列的过程。选择排序基本思想:(1)首先找到数组中最小的那个元素,其次将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。(2)再次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。(3)如此往复,直到整个数组排序。它在不断的选择剩余元素中的最小中,因此叫选择排序。 2、代码实现package com.ch原创 2017-03-05 14:11:25 · 445 阅读 · 0 评论 -
java排序算法(2)—插入排序
1、概述 排序就是将一组对象按照某种逻辑顺序重新排列的过程。插入排序基本思想: (1)每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序;(2)第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从前向后扫描,把第三个数按大小插入到有序表中;(3)依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。2、代码实现package c原创 2017-03-06 15:49:30 · 601 阅读 · 0 评论 -
java排序算法(5)—快速排序
1、概述 排序就是将一组对象按照某种逻辑顺序重新排列的过程。 快速排序是一种分治的排序算法。它将一个数组分成两个子数组,将两部分独立排序。快速排序和归并排序是互补的:归并排序将数组分成两个子数组分别排序,并将有序的子数组归并并以将整个数组排序;而快速排序将数组排序的方式则是当两个子数组都有序时整个数组也就自然有序了。 快速排序基本思想: (1)先从数列中取出一个数作为基准数;(2)分区过程中,将原创 2017-03-09 21:02:51 · 449 阅读 · 0 评论 -
java排序算法(6)—归并排序
1、概述 排序就是将一组对象按照某种逻辑顺序重新排列的过程。 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 归并排序基本思想: (1)将待排序数组分为分为两部分原创 2017-03-10 14:07:18 · 544 阅读 · 0 评论 -
java排序算法(3)—希尔排序
1、概述 排序就是将一组对象按照某种逻辑顺序重新排列的过程。 希尔排序是基于插入排序的的快速排序算法。对于大规模乱序排序数组插入排序很慢,因为它只会交换相邻的元素,例如,如果主键最小的元素正好在数组的尽头,要将它挪到正确位置就要就需要N-1次移动。希尔排序为了加快速度简单地改进了插入排序,交换不相邻的元素以对数组的局部进行排序,并最终用插入排序将局部有序的数组排序。 希尔排序基本思想: (1)h原创 2017-03-07 00:36:25 · 461 阅读 · 0 评论 -
网易2016实习研发工程师编程题——寻找第K大
1、题目有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。 测试样例: [1,3,5,2,2],5,3 返回:22、基本思想本文中不考虑优化算法,直接使用快排算法对数据先进行排序,然后返回排序好的第K大数据。有优化算法的给出方案。2、解决方案import java.util.*;pub原创 2017-03-25 00:32:21 · 623 阅读 · 0 评论 -
网易2017实习生招聘笔试题—奇怪的表达式求值
1、题目 题目描述 常规的表达式求值,我们都会根据计算的优先级来计算,比如*/的优先级高于+-。但是小易所生活的世界的表达式规则很简单,从左往右依次计算即可,而且小易所在的世界没有除法,意味着表达式中没有/,只有(+,-和*)。现在给出一个表达式,需要你帮忙计算出小易所在的世界这个表达式的值是多少? 输入描述 输入为一行字符串,即一个表达式。其中运算符只有-,+,*。参与计算的数字只有0~9.原创 2017-03-26 16:30:27 · 1001 阅读 · 0 评论