有没有做高仿手表的网站,专门做团购的网站有哪些,大连seo排名扣费,wordpress的主题说明巩固基础#xff0c;砥砺前行 。 只有不断重复#xff0c;才能做到超越自己。 能坚持把简单的事情做到极致#xff0c;也是不容易的。
java程序员要学习那些技能 : 作为一名Java程序员#xff0c;要学习以下技能#xff1a;
Java编程语言#xff1a;掌握Java编程语言的…巩固基础砥砺前行 。 只有不断重复才能做到超越自己。 能坚持把简单的事情做到极致也是不容易的。
java程序员要学习那些技能 : 作为一名Java程序员要学习以下技能
Java编程语言掌握Java编程语言的语法和基本概念如数据类型、控制流、面向对象编程等。数据库了解数据库的基本概念和SQL语言掌握至少一种数据库管理系统如MySQL、Oracle、PostgreSQL等的使用。Web开发掌握Web开发技术如HTML、CSS、JavaScript、Servlet、JSP等。框架掌握至少一种主流的Java框架如Spring、Hibernate、Struts等能够使用框架快速开发Web应用。版本控制了解版本控制工具如Git、SVN等的基本使用。设计模式了解常用的设计模式如工厂模式、单例模式、观察者模式等能够应用到实际开发中。网络编程掌握Java网络编程技术如Socket、TCP/IP协议等。多线程编程了解多线程编程的基本概念和技术能够使用Java多线程编程。数据结构和算法了解基本的数据结构和算法如栈、队列、排序、查找等能够应用到实际开发中。Linux操作系统了解Linux操作系统的基本概念和命令行操作能够在Linux环境下进行Java开发。
数据结构和算法
程序 数据结构算法 数据结构是算法的基础
Java常用算法有哪些 : Java常用算法包括
排序算法冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序等2. 查找算法顺序查找、二分查找、哈希查找等图算法广度优先搜索、深度优先搜索、最短路径算法、最小生成树算法等字符串算法KMP算法、BM算法、Sunday算法等动态规划算法背包问题、最长公共子序列问题、最短路径问题等贪心算法活动安排问题、背包问题等分治算法归并排序、快速排序等回溯算法八皇后问题、迷宫问题等。
Java常用的数据结构都有哪些 : Java常用的数据结构包括
数组Array一组相同类型的数据元素的集合可以通过下标访问元素。链表Linked List由一系列节点组成每个节点包含数据和指向下一个节点的指针。栈Stack一种后进先出LIFO的数据结构只允许在栈顶进行插入和删除操作。队列Queue一种先进先出FIFO的数据结构允许在队尾进行插入操作在队头进行删除操作。堆Heap一种特殊的树形数据结构满足堆序性质可以用来实现优先队列等数据结构。树Tree一种非线性的数据结构由节点和边组成每个节点可以有多个子节点。图Graph一种非线性的数据结构由节点和边组成可以表示各种复杂的关系。散列表Hash Table一种利用哈希函数将元素映射到下标的数据结构可以实现快速的查找和插入操作。哈希集合HashSet基于散列表实现的集合可以快速地进行元素的查找和插入操作。哈希映射HashMap基于散列表实现的映射可以快速地进行键值对的查找和插入操作。
问题1字符串匹配问题。str1 是否完全包含 str2
1暴力匹配 2KMP算法
问题2汉诺塔游戏
问题38皇后问题
问题4骑士周游
问题5写出单链表表示的字符串类以及字符串节点类的定义并依次实现他的构造函数、以及计算字符串的长度、串赋值、判断两串相等、求子串、两串拼接、求子串在串中的位置等成员函数
问题6使用二维数组保存棋盘上的数据如何判断输赢完成存盘退出和继续上局的功能
棋盘 二维数组-稀疏数组-写入文件 读取文件-稀疏数组-棋盘
问题7约瑟夫问题丢手帕编号为 1234……n的人围成一圈约定编号为K1Kn的人从1开始报数,数到m的那个人出列然后从m的下一位又开始报数数到m的那个人又出列依次类推直到所有人都出列为止由此产生的一个出队的编号的序列
问题8修路问题
问题9最短路劲
稀疏数组和队列
将棋盘上的数据存储下来可以使用二维数组来存储没有棋子的可以使用默认的0因此记录了很多没有意义的数据 –优化可以使用稀疏数组来存储
稀疏数组 记录数组有多少行 多少列; 把具体的有数据的行列以及数据记录下来缩小程序的规模
棋盘数据存储和恢复 使用稀疏数组来保留二维数组中有效的数据; 将稀疏数组存盘,同时将稀疏数组恢复为二维数组;
代码实现
package com.ttzz.a3;public class SparseArray {// 这是一个10*10的棋盘private static final int ROW_COL 10;private static final int BLACK 1;private static final int WHITE 2;public static void main(String[] args) {int[][] aa new int[ROW_COL][ROW_COL];
// System.out.println(棋盘);
// printArray(aa);// 棋盘填充数据aa[3][4] BLACK;aa[7][5] BLACK;aa[3][2] BLACK;aa[5][1] BLACK;aa[6][6] WHITE;aa[8][3] WHITE;aa[1][1] WHITE;aa[4][0] WHITE;
// printArray(aa);int size 0;// 有效数据for (int i 0; i ROW_COL; i) {for (int j 0; j ROW_COL; j) {if(aa[i][j]!0) {size;
// System.out.println(aa[i][j]);}}}
// System.out.println(sizesize);int bb[][] new int[size1][3];bb[0][0] ROW_COL;bb[0][1] ROW_COL;bb[0][2] size;int count 0;for (int i 0; i ROW_COL; i) {for (int j 0; j ROW_COL; j) {if(aa[i][j]!0) {count;
// System.out.println(count,i,j,aa[i][j]);bb[count][0] i;bb[count][1] j;bb[count][2] aa[i][j];}}}
// printArray(bb);//将稀疏数组转为数组int cc[][] new int[bb[0][0]][bb[0][1]];
// printArray(cc);for (int i 1; i bb.length; i) {for (int j 0; j bb[i].length; j) {System.out.println(i,j,bb[i][j]); cc[bb[i][0]][bb[i][1]] bb[i][2];}}printArray(cc);}public static void printArray(int[][] item) {for (int i 0; i item.length; i) {for (int j 0; j item[i].length; j) {System.out.printf(%d\t, item[i][j]);}System.out.println();}}}
数据结构和算法-(排序算法-冒泡排序)
1.概念什么是稳定排序和非稳定性排序
相同元素排序中之后顺序和之前的顺序一样则为稳定排序否则为非稳定性排序。道听途说不足为惧。都是抄的天下文章一大抄先抄了再说。
2. 冒泡排序代码实现
2.1 普通版本
public static void sort1(int arr[]) {for (int i 0; i arr.length; i) {for (int j 0; j arr.length-i-1; j) {int item 0;if(arr[j]arr[j1]) {item arr[j];arr[j] arr[j1];arr[j1] item;}}}}2.2 优化版本 某一步之后后面的代码有序了后面的代码就不排序了。
public static void sort2(int arr[]) {for (int i 0; i arr.length; i) {boolean iscontinue true; for (int j 0; j arr.length-i-1; j) {int item 0;if(arr[j]arr[j1]) {item arr[j];arr[j] arr[j1];arr[j1] item;iscontinue false;}}if(iscontinue) {break;}}}2.3 优化版2
public static void sort3(int arr[]) {int sortborder arr.length-1;//表示比较的边界int lastcomindex 0; //最后一次比较的位置for (int i 0; i arr.length; i) {boolean iscontinue true; for (int j 0; j sortborder; j) {int item 0;if(arr[j]arr[j1]) {item arr[j];arr[j] arr[j1];arr[j1] item;iscontinue false;lastcomindex j;}}sortborder lastcomindex;if(iscontinue) {break;}}}使用Java实现的栈
package aa.datastructure;import java.util.Arrays;/*** 栈*/
public class MyStackE {private Object[] data null;private int length 0; // 栈的容量private int top -1; // 栈顶的指针MyStack() {}MyStack(int initSize){if(initSize0) {this.length initSize;data new Object[initSize];top -1;}else {throw new RuntimeException(初始容量不能小于0initSize);}}public boolean push(E e) {if(top length-1) {throw new RuntimeException(栈已经达到最大值);}else {data[top] e;return true;}}public E pop() {if(top -1) {throw new RuntimeException(空栈);}else {return (E) data[top--];}}public E peek() {if(top -1) {throw new RuntimeException(空栈);}else {return (E) data[top];}}public static void main(String[] args) {MyStack sm new MyStack(3);for (int i 0; i 3; i) {sm.push(i);}System.out.println(Arrays.toString(sm.data));for (int i 0; i 3; i) {System.out.println(sm.peek());}for (int i 0; i 3; i) {System.out.println(sm.pop());}}}
使用Java实现的队列
package aa.datastructure;import java.util.Arrays;/** 队列*/
public class MyQueueE {private int length;//容量private Object[] data;private int front;//头private int rear;MyQueue(){}MyQueue(int initSize){if(initSize0) {length initSize;data new Object[initSize];front rear 0;}else {throw new RuntimeException(队列初始化大小不能小于0);}}public boolean add(E e) {if(rear length) {throw new RuntimeException(队列满了);}else {data[rear] e;return true;}}public E pool() {if(front rear) {throw new RuntimeException(空队列);}else {E value (E) data[front];data[front] null;return value;}}public E peek() {if(front rear) {throw new RuntimeException(空队列);}else {E value (E) data[front];return value;}}public static void main(String[] args) {MyQueue mq new MyQueue(10);for (int i 0; i 5; i) {mq.add(i);}System.out.println(Arrays.toString(mq.data));for(int i 0; i 5; i) {System.out.println(mq.pool());}for(int i 0; i 5; i) {System.out.println(mq.peek());}}}
【临渊羡鱼不如退而结网】