当前位置: 首页 > wzjs >正文

重庆专业做网站新的网络推广方式

重庆专业做网站,新的网络推广方式,西安企业网站,合肥网站建设公司加盟基本查找 package search.code;public class code1 {public static void main(String[] args) {//基本查找//核心//从0索引开始,一直往后查找,直到找到为止//需求:定义一个方法利用基本查找,查询某个元素是否存在//数据如下&…

基本查找

package search.code;public class code1 {public static void main(String[] args) {//基本查找//核心//从0索引开始,一直往后查找,直到找到为止//需求:定义一个方法利用基本查找,查询某个元素是否存在//数据如下:{131, 127, 147, 81, 103, 23, 7, 79, 81}int[] arr = {131, 127, 147, 81, 103, 23, 7, 79, 81};int num = 81;//调用方法System.out.println(basicSearch(arr,num));}public static boolean basicSearch(int[] arr,int num){//利用基本查找,查询某个元素是否存在for (int i = 0; i < arr.length; i++) {if (arr[i]==num){return true;}}return false;}
}
运行结果:
true

顺序查找:

package search.code;import java.util.ArrayList;
import java.util.List;public class code2 {public static void main(String[] args) {//需求:定义一个方法利用基本查找,查询某个元素在数组中的索引//不需要考虑数组中元素是否重复int[] arr = {131, 127, 147, 81, 103, 23, 7, 79, 81, 81};int num = 81;//调用方法System.out.println(returnindex(arr, num));//需求:定义一个方法利用基本查找,查询某个元素在数组中的索引//需要考虑数组中元素是否重复}public static List<Integer> returnindex(int[] arr, int num) {List<Integer> indexs = new ArrayList<>();for (int i = 0; i < arr.length; i++) {if (arr[i] == num) {indexs.add(i);}}return indexs;}
}

运行结果:
[3, 8, 9]
二分查找/折半查找
在这里插入图片描述
二分查找/折半查找
在这里插入图片描述
二分查找/折半查找的实验代码:

package search.code;public class code3 {public static void main(String[] args) {//定义一个数组int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};//定义一个要查找的元素//调用方法int searchnum = search(arr, 10);System.out.println(searchnum);}public static int search(int[] arr, int num) {//定义两个变量去找查找要的数据int min = 0;int max = arr.length - 1;while (true) {//定义一个中间变量//进行判断if (min > max) {return -1;}//查找min和max的中间位置值int mid = (min + max) / 2;//拿着mid和要查找的元素再次进行判断//mid在要查找元素的左边//mid在要查找元素的右边//mid在要查找元素指向一个元素if (arr[mid] > num) {max = mid - 1;} else if (arr[mid] < num) {min = mid + 1;}else {return mid;}}}
}

运行结果:
9
二分查找总结:
在这里插入图片描述
二分查找改进与提升效率
插值查找
要求(数据分布比较均匀,不然反而会降低效率)
在这里插入图片描述
斐波那契查找:
在这里插入图片描述
三种查找方式的总结:
在这里插入图片描述
分块查找:
在这里插入图片描述
核心思路:先确定要查找的元素在哪一块,然后在块内挨个查找
分块查找的模式图:
在这里插入图片描述
总结
在这里插入图片描述
冒泡排序
在这里插入图片描述
冒泡排序

package search.code;public class Bubbledemo1 {public static void main(String[] args) {//定义数组int[] arr = {2, 1, 4, 3, 5};//利用冒泡排序进行排序//外循环for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - j; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}//遍历数组printArr(arr);}private static void printArr(int[] arr) {for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}
}

运行结果:
1 2 3 4 5

选择排序
在这里插入图片描述
在这里插入图片描述
选择排序:

package search.code;public class Selectiondemo1 {public static void main(String[] args) {//定义数组int[] arr = {2, 1, 4, 3, 5};//利用选择排序进行排序for (int i = 0; i < arr.length - 1; i++) {for (int j = i + 1; j < arr.length; j++) {if (arr[i] > arr[j]) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}printArr(arr);}private static void printArr(int[] arr) {for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}
}

运行结果:
1 2 3 4 5
插入排序:
在这里插入图片描述
插入排序:

package search.code;public class Insertdemo1 {public static void main(String[] args) {//定义数组int[] arr = {2, 3, 4553187, 67, 561, 32, 90, 14, 3, 215, 23, 413131, 9, 5354, 1, 2};int startIndex = -1;for (int i = startIndex; i < arr.length; i++) {//记录当前插入数据的索引int j = i;while (j > 0 && arr[j] < arr[j - 1]) {int temp = arr[j];arr[j] = arr[j - 1];arr[j - 1] = temp;j--;}}//遍历数组printArr(arr);}private static void printArr(int[] arr) {for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}
}

运行结果:
1 2 2 3 3 9 14 23 32 67 90 215 561 5354 413131 4553187

快速算法
在这里插入图片描述
递归的作用:
在这里插入图片描述
书写递归的两个核心:
在这里插入图片描述

求1-100之间的和

package search.code;public class Sumdemo1 {public static void main(String[] args) {int sum = getSum(100);System.out.println(sum);}private static int getSum(int i) {if (i == 1){return 1;}return i + getSum(i - 1);}
}

运行结果:
5050
递归求阶乘
在这里插入图片描述

package search.code;public class Recursiondemo1 {public static void main(String[] args) {//调用方法int result = getFactorialRecursion(5);System.out.println(result);}//递归求阶乘//5! = 5 * 4 * 3 * 2 * 1private static int getFactorialRecursion(int i) {if (i == 1){return 1;}return i * getFactorialRecursion(i -1);}
}

运行结果:
120
递归的内存图
在这里插入图片描述
快速排序
在这里插入图片描述

package search.code;public class QuickSortdemo1 {public static void main(String[] args) {int[] arr = {4, 6, 7, 12, 1, 68, 89, 9, 23};quickSort(arr, 0, arr.length - 1);printArr(arr);}private static void quickSort(int[] arr, int i, int j) {//定义两个变量记录要查找的范围int startNum = i;int endNum = j;if (startNum > endNum){return;}//记录基准数int baseNum = arr[i];//使用循环找到要交换的数字//利用endNum从后往前找,找到比基准数小的数字while(startNum != endNum) {while (true) {if (endNum <= startNum || arr[endNum] < baseNum) {break;}endNum--;}//利用startNum从前往后找,找到比基准数小的数字while (true) {if (endNum <= startNum || arr[startNum] > baseNum) {break;}startNum++;}int temp = arr[startNum];arr[startNum] = arr[endNum];arr[endNum] = temp;}//当startNum和endNum指向同一个元素时,完成第一轮排序//把基准数归位int temp = arr[i];arr[i] = arr[startNum];arr[startNum] = temp;quickSort(arr,i,startNum - 1);quickSort(arr,startNum + 1,j);}private static void printArr(int[] arr) {for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}
}

运行结果:
1 4 6 7 9 12 23 68 89
快速排序的使用时间

package search.code;import java.util.Random;public class QuickSortdemo1 {public static void main(String[] args) {printTime();}private static void getRandomArr() {int[] arr = new int[10000];Random r = new Random();for (int i = 0; i < arr.length; i++) {arr[i] = r.nextInt();}}private static void printTime() {long start = System.currentTimeMillis();getRandomArr();long end = System.currentTimeMillis();System.out.println(end - start);}private static void quickSort(int[] arr, int i, int j) {//定义两个变量记录要查找的范围int startNum = i;int endNum = j;if (startNum > endNum){return;}//记录基准数int baseNum = arr[i];//使用循环找到要交换的数字//利用endNum从后往前找,找到比基准数小的数字while(startNum != endNum) {while (true) {if (endNum <= startNum || arr[endNum] < baseNum) {break;}endNum--;}//利用startNum从前往后找,找到比基准数小的数字while (true) {if (endNum <= startNum || arr[startNum] > baseNum) {break;}startNum++;}int temp = arr[startNum];arr[startNum] = arr[endNum];arr[endNum] = temp;}//当startNum和endNum指向同一个元素时,完成第一轮排序//把基准数归位int temp = arr[i];arr[i] = arr[startNum];arr[startNum] = temp;quickSort(arr,i,startNum - 1);quickSort(arr,startNum + 1,j);}private static void printArr(int[] arr) {for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}
}

运行时间:
1
Lambda表达式

package search.code;import java.util.Arrays;public class Lambdademo1 {public static void main(String[] args) {//初始Lambda表达式Integer[] arr = {1,12,32,2,4,3,7};Arrays.sort(arr,(a,b)->{return a - b;             //升序// return b - a;          //降序});System.out.println(Arrays.toString(arr));}
}

运行结果:
[1, 2, 3, 4, 7, 12, 32]
Lambda表达式的标准格式
在这里插入图片描述
JDK8以后的一种新的语法形式
在这里插入图片描述

注意点:
在这里插入图片描述
必须是函数式接口才能用Lambda表达式简写
总结:
在这里插入图片描述
省略核心:
可推导可省略
Lambda表达式规则:
在这里插入图片描述
Lambda表达式的完全省略式

package search.code;import java.util.Arrays;public class Lambdademo1 {public static void main(String[] args) {//初始Lambda表达式Integer[] arr = {1,12,32,2,4,3,7};Arrays.sort(arr,(a,b)->a-b);System.out.println(Arrays.toString(arr));}
}

运行结果:
[1, 2, 3, 4, 7, 12, 32]

package search.code;import java.util.Arrays;public class Lambdademo2 {public static void main(String[] args) {String[] arr = {"aa","a","aaaaaaaaaa","aa","aaa","aaaa"};//Lambda表达式Arrays.sort(arr,(String o1, String o2) ->o1.length() - o2.length());System.out.println(Arrays.toString(arr));}
}

运行结果:
[a, aa, aa, aaa, aaaa, aaaaaaaaaa]

练习.按照要求排序

在这里插入图片描述
Test

package search.code;import java.util.Arrays;public class GirlFriendTest {public static void main(String[] args) {GirlFriend gf1 = new GirlFriend("xx",18,160);GirlFriend gf2 = new GirlFriend("xy",19,165);GirlFriend gf3 = new GirlFriend("xss",20,168);GirlFriend[] arr = {gf1,gf2,gf3};Arrays.sort(arr,(o1,o2)->(o1.getAge()-o2.getAge()));System.out.println(Arrays.toString(arr));}
}

Javabean:

package search.code;public class GirlFriend {private String name;private int age;private int height;public GirlFriend(){}public GirlFriend(String name,int age ,int height){this.name = name;this.age = age;this.height = height;}/*** 获取* @return name*/public String getName() {return name;}/*** 设置* @param name*/public void setName(String name) {this.name = name;}/*** 获取* @return age*/public int getAge() {return age;}/*** 设置* @param age*/public void setAge(int age) {this.age = age;}/*** 获取* @return height*/public int getHeight() {return height;}/*** 设置* @param height*/public void setHeight(int height) {this.height = height;}public String toString() {return "GirlFriend{name = " + name + ", age = " + age + ", height = " + height + "}";}
}

运行结果:
[GirlFriend{name = xx, age = 18, height = 160},
GirlFriend{name = xy, age = 19, height = 165},
GirlFriend{name = xss, age = 20, height = 168}]
在这里插入图片描述
在这里插入图片描述

递归的方法:

package kl003.Test6;public class Rabbit1 {public static void main(String[] args) {int sum = getSum(12);System.out.println(sum);}private static int getSum(int month) {if (month == 1 || month == 2){return  1;}else {return getSum(month -1) + getSum(month - 2);}}
}

赋值法:

package kl003.Test6;public class Rabbit1 {public static void main(String[] args) {int sum = getSum(12);System.out.println(sum);}private static int getSum(int month) {if (month == 1 || month == 2){return  1;}else {return getSum(month -1) + getSum(month - 2);}}
}

运行结果:
144
在这里插入图片描述
递归方法

package kl003.Test6;public class Monkey {public static void main(String[] args) {int sum = getSum(9);System.out.println(sum);}private static int getSum(int day) {if (day < 0 || day > 10){return -1;}if (day == 10){return 1;}else {return (getSum(day + 1) + 1) * 2;}}
}

运行结果:1534

在这里插入图片描述

package kl003.Test6;public class Floor {public static void main(String[] args) {int cnt  = getCnt(20);System.out.println(cnt);}private static int getCnt(int floor) {if (floor == 1){return 1;}if (floor == 2){return 2;}return getCnt(floor - 1) + getCnt(floor - 2);}
}

运行结果:
10946
谢谢观看!

http://www.dtcms.com/wzjs/97470.html

相关文章:

  • 软装公司排名前十强seo推广软件哪个好
  • 可靠的铁岭做网站公司西安网站制作价格
  • 微信后台网站建设家庭优化大师
  • 网站建设与管理专业app开发定制
  • 微信小程序怎么制作游戏湖南有实力seo优化
  • 澳大利亚网站设计开鲁网站seo免费版
  • dede减肥网站模板seo实战密码第四版
  • 快速制作网站的方法广东近期新闻
  • 永久免费企业网站建设恶意点击竞价是用的什么软件
  • 高埗网站建设公司原画培训班一般学费多少
  • b2c商城网站源码松原今日头条新闻
  • 网站突然打不开是什么原因免费淘宝关键词工具
  • vs做网站创建项目时选哪个时事新闻最新
  • 如何制作网页图片素材seo技术教程博客
  • 网站内容页301如何做推广什么app佣金高
  • 西昌市规划建设局网站免费搭建自己的网站
  • 网站如何注销想在百度上推广怎么做
  • 缅甸网站后缀网络推广员每天的工作是什么
  • 网站建设在阿里云免费观看短视频的app软件推荐
  • 找人做网站去哪里找网站优化包括
  • 北京公司注销长沙seo关键词排名
  • 个人网站赚广告费深圳产品网络推广
  • 中国智慧城市建设门户网站专门做推广的软文
  • 个人做网站 需要学什么只是互联网推广话术
  • 各类手机网站建设知名的搜索引擎优化
  • 剪辑培训班seo深圳培训班
  • 网站怎么做长尾关键词网络营销形式
  • 巢湖网站开发信息流优化师简历怎么写
  • 学asp.net 做网站 书籍接单平台
  • 网站建设课程设计报告范文baidu com百度一下