1.给两个字符串s和t,判断t是否为s的重新排列后组成的单词. s = "anagram", t = "nagaram", return true. s = "rat", t = "car", return false. leetcode地址:https://leetcode.com/problems/valid-anagram/description/ (1)解法一:排序,O(n*logn) class Solution:…
20162311 编写Android程序测试查找排序算法 一.设置图形界面 因为是测试查找和排序算法,所以先要有一个目标数组.为了得到一个目标数组,我设置一个EditText和一个Button来添加数据 <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="2" android…
1.直接插入排序算法 源码: package com.DiYiZhang;/* 插入排序算法 * 如下进行的是插入,排序算法*/ public class InsertionSort {    public static void insertionSort(int[] a) {        int tmp;        for (int i = 1; i < a.length; i++) {            for (int j = i; j >0; j--) {         …
这段时间在学Java,期间学到了一些排序和查找方法.特此写来和大家交流,也方便自己的日后查看与复习. 1.下边是Java的主类: public class Get { public static void main(String[] args) { int len=10; int[] a=new int[len]; for(int i=0;i<len;i++) { int t=(int)(Math.random()*10); a[i]=t; } //静态初始化数组 //int[] b=new i…
算法 - 第一章 时间复杂度: Big O 时间/空间复杂度计算一样,都是跟输入数据源的大小有关 n->∞ O(logn) 每次只使用数据源的一半,logn同理 最优解 先满足时间复杂度的情况最优情况下使用最小空间复杂度 例题:子序列交换 题目描述: 输入一个序列,如1234567,在5和6位置处分成两个子序列,12345与67,将两个序列交换输出,如该输出为6712345. 思路讲解: 首先将两个子序列逆序合并 逆序:左右两指针交换元素值直至中间 逆序空间复杂度:O(1) 再将生成的新序列逆序…
一.哈希表 哈希表是一种可以快速定位得数据结构.哈希表可以做到平均查找.插入.删除时间是O(1),当然这是指不发生Hash碰撞得情况.而哈希表最大得缺陷就是哈希值得碰撞(collision). Hash碰撞:就是指hash桶有多个元素了.常见解决哈希碰撞得方法就是在hash桶后面加个链表 这里就引入第一个问题:为什么Map的底层设计要采用哈希表的这种数据结构? HashMap设计时,要求其key不能重复.所以每次往HashMap设置值时,需要对HashMap现在容器所有key进行筛选,以保证不会…
javascript数据结构与算法--高级排序算法 高级排序算法是处理大型数据集的最高效排序算法,它是处理的数据集可以达到上百万个元素,而不仅仅是几百个或者几千个.现在我们来学习下2种高级排序算法---- 希尔排序和快速排序. 一:希尔排序: 希尔排序的核心理念是:首先比较距离较远的元素,而非相邻的元素. 基本原理:通过定义一个间隔序列来表示在排序过程中进行比较的元素之间有多远的间隔. 下面我们来看看数组[0,9,1,8,7,6,2,3,5,4] 来使用希尔排序的原理:如下图: 代码分析如下:…
一.查找 1.查找的概念: 2 顺序查找(linear search) 从头找到尾 def linear_search(li,val): for ind ,v in enumerate(li): if v==val: return ind else: return None 3 二分查找(binary search): def binary_search(li,val): left = 0 right = len(li)-1 while left<=right: mid = (left+righ…
javascript数据结构与算法--基本排序算法(冒泡.选择.排序)及效率比较 一.数组测试平台. javascript数据结构与算法--基本排序(封装基本数组的操作),封装常规数组操作的函数,比如:插入新数据,显示数组数据,还有交换数组元素等操作来调用不同的排序算法 function CArray(numElements) { this.dataStore = []; this.pos = 0;//是一个索引值,默认为0,从第一个开始 this.numElements = numElemen…
Linux相关面试题&答案 Linux面试题&答案 假设apache日志格式为:118.78.199.98 – - [09/Jan/2010:00:59:59 +0800] "GET /Public/Css/index.css HTTP/1.1″ 304 – "http://www.a.cn/common/index.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.…