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

用织梦怎么做网站三十个知识点带你学党章

用织梦怎么做网站,三十个知识点带你学党章,汕头第一网e京网,社交网站开发技术岗文章目录 一 . 排序方法二 . 查找方法三 . 判断是否相等的方法四 . 拷贝方法五 . 填充方法 一 . 排序方法 我们第一个要介绍的就是sort方法 这个排序实现的底层逻辑应该是十分复杂的,以我们目前的水平体系应该无法理解,我们今天尝试用我们可以理解的一种排序算法,插入排序来模…

文章目录

      • 一 . 排序方法
      • 二 . 查找方法
      • 三 . 判断是否相等的方法
      • 四 . 拷贝方法
      • 五 . 填充方法

一 . 排序方法

我们第一个要介绍的就是sort方法
在这里插入图片描述
这个排序实现的底层逻辑应该是十分复杂的,以我们目前的水平体系应该无法理解,我们今天尝试用我们可以理解的一种排序算法,插入排序来模拟一下这个排序的实现

public static void swap(int[] arr,int i,int j){if(i == j){return;}arr[i] = arr[i] ^ arr[j];arr[j] = arr[i] ^ arr[j];arr[i] = arr[i] ^ arr[j];}public static void insertSort(int[] arr) {if(arr == null || arr.length == 0){System.out.println("您的数组无法进行排序操作");return;}for (int i = 1; i < arr.length; i++) {for(int j = i; j > 0; --j){if(arr[j] < arr[j-1]){swap(arr,j,j-1);}}}}

我们第二个要介绍的是一种局部排序的方法
在这里插入图片描述

我们可以看到这个方法里面有三个参数,一个是arr(待排序的数组),一个是fromIndex,一个是toIndex,也就是从什么时候开始,和从什么时候结束,值得一提的是,我们java中这种定区间的方法一般是左闭右开,所以如果fromIndex==toIndex,也就是不进行数组的排序,…下面我们继续尝试用插入排序算法来模拟一下

 public static void insertSortOfRange(int[] arr,int fromIndex,int toIndex){//这个是我们的限制条件if(arr == null || arr.length == 0){System.out.println("您的数组无法进行排序操作");return;}else if(fromIndex > toIndex){System.out.println("起始位置还能比结束位置大???");return;}else if((fromIndex < 0 || fromIndex >= arr.length)||(toIndex < 0 || toIndex > arr.length)){System.out.println("数组下标越界...");return;}//下面才是真正的代码实现for(int i = fromIndex+1; i < toIndex; ++i){for(int j = i; j > fromIndex; --j){if(arr[j] < arr[j-1]){swap(arr,j,j-1);}}}}
public static void swap(int[] arr,int i,int j){if(i == j){return;}arr[i] = arr[i] ^ arr[j];arr[j] = arr[i] ^ arr[j];arr[i] = arr[i] ^ arr[j];}

这里我们的技术可能还是不到位,不知道会不会出现什么bug
其实Arrays库里面还有好多sort方法的重载…这里也可以看出来方法重载的重要性…

其实Arrays类里面还提供了一个parallelSort方法,该方法的基本使用与sort方法是一致的,但是底层实现可能不同
在这里插入图片描述
下面是网上关于两种方法区别:
这是sort方法
在这里插入图片描述
这是parallelSort方法
在这里插入图片描述
范围检查方法 :
刚才我们在进行用插入排序来模拟sort方法的指定访问的时候,进行了范围的检查,实际上我们的Arrays类已经提供了一个进行范围检查的方法,如果你进行一些指定范围的原码的查看,你会发现都在调用这个方法
在这里插入图片描述

二 . 查找方法

我们目前的知识储备学过顺序查找,就是一个一个查找,时间复杂度为O(n),还有一个二分查找,时间复杂度是O(log2N),二分查找的效率要远大于顺序查找,我们Arrays类已经帮我们提供了一个二分查找的方法
在这里插入图片描述
原码其实也很简单,应该很好理解…
模拟一下

public static int binary(int[] arr,int key){int left = 0;int rigth = arr.length - 1;int mid;while(left <= rigth){mid = left + ((rigth - left)>>>1);if(arr[mid] < key) {left = mid + 1;}else if(arr[mid] > key) {rigth = mid - 1;}else{return mid;}}return -1;}

三 . 判断是否相等的方法

这个判断是否相等的方法也就是我们要介绍的equals方法
在这里插入图片描述
我们来简单的分析
首先当a == a2时,也就是二者引用同一块堆空间的时候,直接返回true
这个包括两者都是null的情况
其次就是如果其中一个为null,另外一个不是就返回false
然后又调用了一个方法对其他一般的情况进行判断…
下面我们来尝试模拟以下这个方法

public static boolean myEquals(int[] a,int[] a1){if(a == a1){return true;}if(a == null || a1 == null){return false;}if(a.length != a1.length){return false;}for(int i = 0; i <![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b13e01233e2645aeb5d6670b38dab582.png#pic_center)a.length; ++i){if(a[i] != a1[i]){return false;}}return true;}

判断局部相等的方法
在这里插入图片描述
这个我们就不进行模拟了…

四 . 拷贝方法

下面我们介绍两种方案来完成数组的拷贝
基础的for循环就不说了,过于基础了
基础库方法copyOf的分析:
下面是库函数的介绍在这里插入图片描述
下面是函数的模拟

public static int[] myCopyOf(int[] a,int newLength){//下面是一些判断的条件if(a ==  null){throw new RuntimeException("您的数组都没引用,咋拷贝啊");}else if(newLength < 0){throw new RuntimeException("新长度还能是负数?");}int[] arrCopy = new int[newLength];if(newLength <= a.length){for(int i = 0; i < newLength; ++i){arrCopy[i] = a[i];}}else if(newLength > a.length){for(int i = 0; i < a.length; ++i){arrCopy[i] = a[i];}}return arrCopy;}

注意,该库方法是用arraycopy方法来实现的
在这里插入图片描述
可以看到这个方法前面有native修饰,这就说明底层使用C/C++语言来实现的
同样的这个方法也有相应的范围方法

五 . 填充方法

在这里插入图片描述
这个方法比较简单没什么可说的…也不用再模拟了,已经告诉你实现的方案了,同时也有指定范围填充的方法
在这里插入图片描述

这一节我们应该会持续的更新,再不断学习Java的过程中不断完善相关Arrays类方法的分析与总结…

http://www.mmbaike.com/news/50059.html

相关文章:

  • 网站建设公司考察搜索引擎优化宝典
  • 电商平台制作公司seo关键词排名优化费用
  • 做全屏网站图片显示不全海口网站关键词优化
  • 创意网站开发电销外包团队在哪找
  • 高平市网站建设公司网站技术解决方案
  • 建设互联网站机房需要哪些设备百度非企推广开户
  • 新问网站设计关键词排名点击
  • 做食品研发都有哪些网站公司营销网站建设
  • 丰台新乡网站建设跨境电商seo
  • 威海屋顶防水价格威海做防水网站seo查询工具网站
  • 青岛缤纷网络科技有限公司关键词的优化方案
  • 1920的做网站做多大广州关键词优化外包
  • godaddy网站建设怎么样做排名优化
  • 给赌场做网站域名地址查询
  • 知名网建公司郑州seo多少钱
  • 北京展览网站建设网站检测中心
  • 描述自己做的网站网络营销策划案例
  • 广州网站建设公司有哪些网站优化方法
  • 沂南做网站优化教程
  • 电脑怎么做服务器 网站专门搜索知乎内容的搜索引擎
  • 网站运营与管理的对策建议seo技术分享
  • 综合b2b网站有哪些网站推广计划书范文
  • 免费做cpa单页网站百度搜索引擎的网址是
  • b2b平台网站功能品牌网络营销成功案例
  • 营销网站定制的优势品牌广告视频
  • 做企业网站大约多少钱hyein seo
  • 什邡网站建设北京疫情消息1小时前
  • 建设部网站 标准下载seo自动优化工具
  • flash交互网站页面切换制作靠谱的代写平台
  • 网站原创文章在哪里找seo推广是做什么