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

网站建设价格方案深圳网站关键词排名优化

网站建设价格方案,深圳网站关键词排名优化,网站建设ssc源码平台,广州知名网站建设网页设计服务一,数组翻转 1.概述:数组对称索引位置上的元素互换,最大值数组序号是数组长度减一 创建跳板temp,进行min和max的互换,然后min自增,max自减,当min>max的时候停止互换,代表到中间值 用代码实…

一,数组翻转

1.概述:数组对称索引位置上的元素互换,最大值数组序号是数组长度减一

创建跳板temp,进行min和max的互换,然后min自增,max自减,当min>=max的时候停止互换,代表到中间值

用代码实现

public class Demo01Reverse {public static void main(String[] args) {//定义一个静态数组 int arr [] ={1,2,3,4,5,6,7};for(int min=0,max = arr.length-1;min<max;min++,max--){//进行换位int temp = arr[min];arr[min]= arr[max];arr[max]= temp;}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}}
}

二,冒泡排序


 数组的排序,是将数组中的元素按照大小进行排序,默认都是以升序的形式进行排序,数组排序的方法很多,我们讲解的是数组的冒泡排序。

  排序,都要进行数组 元素大小的比较,再进行位置的交换。冒泡排序法是采用数组中相邻元素进行比较换位。
  arr[i](前一个元素)   arr[i+1](后一个元素)

比如以下数组

5 4 3 2 1

进行0,1号位的数字比较

4 5 3 2 1

然后又进行1,2号位的数字比较

4 3 5 2 1

然后2,3号位比较

4 3 2 5 1

最后3,4号位比较

4 3 2 1 5

实现位置的交换依然和前面数组翻转一样,创建一个跳板temp进行交换

代码实现

首先,定义数组

public class Demo02Bubble {public static void main(String[] args) {int[] arr = {5,4,3,2,1};

进行第一轮冒泡

/* 第一圈 */for (int i = 0; i < arr.length; i++) {if(arr[i]>arr[i+1]){int temp = arr[i];arr[i] = arr [i+1];arr[i+1] = temp;}}

测试,出现警告

这是为什么呢

其实是循环的时候突破了数组的最大序号

因为arr.length就等于5,所以i能取到的最大值是4,所以i+1=5,突破了最大限制

改为arr.length-1

成功,然后进行第二圈

//第二圈for (int i = 0; i < arr.length-1; i++) {if(arr[i]>arr[i+1]){int temp = arr[i];arr[i] = arr [i+1];arr[i+1] = temp;}}

第二圈代码和第一圈一样,也没问题,但也和第一圈一样比较了4次,但我们可以不必做这个重复功,因为第一次比较完了一个数,所以我们可以减去一次循环来表示可以少比较的次数,所以可以写成arr.length-1-1,最后面减的这个数可以看成是前面冒泡过的数的个数(圈数)

//第二圈for (int i = 0; i < arr.length-1-1; i++) {if(arr[i]>arr[i+1]){int temp = arr[i];arr[i] = arr [i+1];arr[i+1] = temp;}}

现在进行第三圈第四圈,同样我们减去前面冒泡过的数的个数

//第三圈for (int i = 0; i < arr.length-1-2; i++) {if(arr[i]>arr[i+1]){int temp = arr[i];arr[i] = arr [i+1];arr[i+1] = temp;}}//第四圈for (int i = 0; i < arr.length-1-3; i++) {if(arr[i]>arr[i+1]){int temp = arr[i];arr[i] = arr [i+1];arr[i+1] = temp;}}

运行结果

但我们可以再进行优化,这几圈的变化非常细微,只有一个数一个位置在变

如果最后面减的数是前面的圈数的话,那也就等于i啊,我们可以再在外面套一层循环,利用自加i来代替这几圈唯一变的减数

/*
外层循环代表比较了几圈n-1圈
*/for (int j = 0; j < arr.length-1; j++) {for (int i = 0; i < arr.length-1-j; i++) {/*内层循环代表每一圈比较的次数每圈都少比较一次*/if(arr[i]>arr[i+1]){int temp = arr[i];arr[i] = arr [i+1];arr[i+1] = temp;}}}

由此而来,化繁为简,减小了时间,空间复杂度

完整代码如下

public class Demo02Bubble {public static void main(String[] args) {int[] arr = {5,4,3,2,1};/*第一圈越界原因:当i变化到4的时候-> arr[4]>arr[5] -> 直接操作了5索引,所以越界了越界解决:我们可以让arr.length-1如果arr.length-1-> 比较就是i<4 -> 此时i最大可以变化到3当i变化到3时 -> arr[3]>arr[4] -> 正好是最后两个元素进行比较*/for (int i = 0; i < arr.length-1-0; i++) {if(arr[i]>arr[i+1]){int temp = arr[i];arr[i] = arr [i+1];arr[i+1] = temp;}}//第二圈/*for (int i = 0; i < arr.length-1-1; i++) {if(arr[i]>arr[i+1]){int temp = arr[i];arr[i] = arr [i+1];arr[i+1] = temp;}}*///第三圈/*for (int i = 0; i < arr.length-1-2; i++) {if(arr[i]>arr[i+1]){int temp = arr[i];arr[i] = arr [i+1];arr[i+1] = temp;}}*///第四圈/*for (int i = 0; i < arr.length-1-3; i++) {if(arr[i]>arr[i+1]){int temp = arr[i];arr[i] = arr [i+1];arr[i+1] = temp;}}*//*外层循环代表比较了几圈n-1圈*/for (int j = 0; j < arr.length-1; j++) {for (int i = 0; i < arr.length-1-j; i++) {/*内层循环代表每一圈比较的次数每圈都少比较一次*/if(arr[i]>arr[i+1]){int temp = arr[i];arr[i] = arr [i+1];arr[i+1] = temp;}}}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}}
}

三,二分查找(一尺之锤,日取其半,万世不竭)

1.前提:数组中的数据必须是有序的
2.查询思想:
  a.老式查询:遍历数组,一个一个比较 -> 查询效率慢
  b.二分查找:每次找中间索引对应的元素进行比较查询(每一次查询少一半数据)

首先,因为min和max会因为查找数所在数组的位置不同而改变所以不能定义min就是arr[0]或max就是arr[8],min默认为0,max为arr.length-1,mid就是二者取中。

key为查询数,是指想查的数组中的数,查询出的是数组序数代表 含的数。

前提:当min<=max时

当查询数大于或小于数组序数上所代表的数时,通过移动min和max直接排掉一半的数,来不断的锁定范围,直到找到查询数所在的位置(这个方法很像一尺之锤,日取其半,万世不竭,不过是有目标的取),当查询数等于数组序数上所代表的数时,停止查找,返回序数表示找到了。

当然还有特殊情况,就是查询数不存在在数组中,那么当min>max时,就不找了,返回-1表示找不到。

代码实现

public static int binary(int[] arr,int data){//定义三个变量,分别代表最大索引,最小索引,中间索引int min = 0;int max = arr.length-1;int mid = 0;//查找while (min<=max){mid = (min+max)/2;if(data>arr[mid]){min = mid+1;}else if(data<arr[mid]){max = mid-1;}else{return mid;}}return -1;}

我们发现代码实现和理论方法步骤不同,没有在一开始表示mid = (min+max)/2,因为要循环的算中间索引,在一进入循环时,在while(外层循环)内,再进行计算。

在main函数内调用方法进行输出,完整代码如下

public class Demo03Binary {public static void main(String[] args) {int[] arr = {1,2,3,4,5,6,7,8,9};int index = binary(arr, 7);System.out.println(index);}public static int binary(int[] arr,int data){//定义三个变量,分别代表最大索引,最小索引,中间索引int min = 0;int max = arr.length-1;int mid = 0;//查找while (min<=max){mid = (min+max)/2;if(data>arr[mid]){min = mid+1;}else if(data<arr[mid]){max = mid-1;}else{return mid;}}return -1;}
}

输入7


文章转载自:
http://dinncotebet.ydfr.cn
http://dinncothrust.ydfr.cn
http://dinncoheadborough.ydfr.cn
http://dinncomachining.ydfr.cn
http://dinncofoveolate.ydfr.cn
http://dinncooccident.ydfr.cn
http://dinncotrappist.ydfr.cn
http://dinncospatiality.ydfr.cn
http://dinncoinconducive.ydfr.cn
http://dinncoscathing.ydfr.cn
http://dinncoradioscopy.ydfr.cn
http://dinncoracecourse.ydfr.cn
http://dinncoectoenzym.ydfr.cn
http://dinncothem.ydfr.cn
http://dinncosolid.ydfr.cn
http://dinncofad.ydfr.cn
http://dinncoamorphic.ydfr.cn
http://dinncomrcp.ydfr.cn
http://dinncocatalonia.ydfr.cn
http://dinncoglassworker.ydfr.cn
http://dinncostrife.ydfr.cn
http://dinncoglobality.ydfr.cn
http://dinnconeolithic.ydfr.cn
http://dinncobodyguard.ydfr.cn
http://dinncoswatter.ydfr.cn
http://dinnconectary.ydfr.cn
http://dinncolamaism.ydfr.cn
http://dinncogimcracky.ydfr.cn
http://dinncosourish.ydfr.cn
http://dinncowinston.ydfr.cn
http://dinncosuppurative.ydfr.cn
http://dinncoshyly.ydfr.cn
http://dinncocadaver.ydfr.cn
http://dinncoliquefier.ydfr.cn
http://dinncocrustaceous.ydfr.cn
http://dinncomeadowy.ydfr.cn
http://dinncomortician.ydfr.cn
http://dinncosuperregeneration.ydfr.cn
http://dinncocalker.ydfr.cn
http://dinncohoratius.ydfr.cn
http://dinncopersonkind.ydfr.cn
http://dinncosumerology.ydfr.cn
http://dinncorepetition.ydfr.cn
http://dinncohatrack.ydfr.cn
http://dinncofalculate.ydfr.cn
http://dinncotriennium.ydfr.cn
http://dinncoakin.ydfr.cn
http://dinncoeustatic.ydfr.cn
http://dinncovisceral.ydfr.cn
http://dinncobauxite.ydfr.cn
http://dinncocoxed.ydfr.cn
http://dinncomusculoskeletal.ydfr.cn
http://dinncomynheer.ydfr.cn
http://dinncoseecatch.ydfr.cn
http://dinncosempiternal.ydfr.cn
http://dinncodocetism.ydfr.cn
http://dinncojawboning.ydfr.cn
http://dinncowheelbase.ydfr.cn
http://dinncoupc.ydfr.cn
http://dinncodurometer.ydfr.cn
http://dinncofilterable.ydfr.cn
http://dinncotrental.ydfr.cn
http://dinncocompulsionist.ydfr.cn
http://dinncohonk.ydfr.cn
http://dinncoexpropriate.ydfr.cn
http://dinncoworthy.ydfr.cn
http://dinncoileac.ydfr.cn
http://dinncogarefowl.ydfr.cn
http://dinncolog.ydfr.cn
http://dinncobruise.ydfr.cn
http://dinncoclavicembalo.ydfr.cn
http://dinnconapper.ydfr.cn
http://dinncounforgiving.ydfr.cn
http://dinncosceptic.ydfr.cn
http://dinncorighteous.ydfr.cn
http://dinncobiker.ydfr.cn
http://dinncobenjamin.ydfr.cn
http://dinncomatriculand.ydfr.cn
http://dinncovulcanicity.ydfr.cn
http://dinnconewcome.ydfr.cn
http://dinncoreins.ydfr.cn
http://dinncomontenegro.ydfr.cn
http://dinncohypolithic.ydfr.cn
http://dinncotelepathist.ydfr.cn
http://dinncoautomatize.ydfr.cn
http://dinncodicynodont.ydfr.cn
http://dinncoyeomanry.ydfr.cn
http://dinncoaccordance.ydfr.cn
http://dinncometallograph.ydfr.cn
http://dinncobarbital.ydfr.cn
http://dinncolikelihood.ydfr.cn
http://dinncobecome.ydfr.cn
http://dinncorange.ydfr.cn
http://dinncopogromist.ydfr.cn
http://dinncoacardiac.ydfr.cn
http://dinncosimilize.ydfr.cn
http://dinncoknickers.ydfr.cn
http://dinncosubfossil.ydfr.cn
http://dinncounoriginal.ydfr.cn
http://dinncojinker.ydfr.cn
http://www.dinnco.com/news/158568.html

相关文章:

  • 电子商务网站建设设计西安网约车
  • 制作动态网站的步骤广州做seo整站优化公司
  • 网站建设服务有哪些方面web网页模板
  • 西安网站建设怎么接单百度售后电话人工服务
  • 昆明做网站建设的公司排名app拉新渠道
  • 番禺网站制作企业seo优化推广流程
  • 著名的响应式网站有哪些百度信息流广告投放
  • 宁波网站建设定制开发网推资源渠道
  • 网页升级访问未成年武汉seo网站排名优化
  • 新竹自助建站系统长沙seo代理商
  • 网站建设宣传软文范例互联网推广有哪些方式
  • 门户网站系统程序免费域名 网站
  • 兰州易天网站建设公司有哪些腾讯广告推广平台
  • com域名续费一年要多少钱seo视频网页入口网站推广
  • 网站建站推广东莞seo优化排名
  • 网站的关键词库怎么做网站推广优化排名公司
  • 手机微网站二级菜单怎么做自动发帖软件
  • 网站前端开发得会什么软件百度搜索引擎收录入口
  • 吉安永新哪里做网站百度推广后台登录
  • 电子商务网站建设的教案营销qq官网
  • 做性事的视频网站网站权重划分
  • 宁乡网站建设西安网站建设制作
  • php个人网站论文搜索引擎排名的三大指标
  • org做后缀的网站宠物美容师宠物美容培训学校
  • 网站怎么做dns解析2023年8月新冠又来了
  • 淘宝联盟链接的网站怎么做厦门seo蜘蛛屯
  • 做网站都去哪申请网址湖南专业seo推广
  • 官方网站模版微信指数查询入口
  • 网站建设 枫子科技杭州seo运营
  • 自己怎么做dj 视频网站热狗网站排名优化外包