• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Java数组高级算法与Arrays类常见操作小结【排序、查找】

java 搞代码 4年前 (2022-01-05) 44次浏览 已收录 0个评论

这篇文章主要介绍了Java数组高级算法与Arrays类常见操作,结合实例形式总结分析了Java数组常见的排序算法、查找算法相关原理、实现与使用技巧,需要的朋友可以参考下

本文实例讲述了Java数组高级算法与Arrays类常见操作。分享给大家供大家参考,具体如下:

冒泡排序

冒泡排序原理

冒泡排序代码:

 package cn.itcast_01; /* * 数组排序之冒泡排序: *     相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处 */ public class ArrayDemo { public static void main(String[] args) { // 定义一个数组 int[] arr = { 24, 69, 80, 57, 13 }; System.out.println("排序前:"); printArray(arr); bubbleSort(arr); System.out.println("排序后:"); printArray(arr); } //冒泡排序代码 /*总共需要比较数组长度-1次,x  arr[y + 1]) { int temp = arr[y]; arr[y] = arr[y + 1]; arr[y + 1] = temp; } } } } // 遍历功能 public static void printArray(int[] arr) { System.out.print("["); for (int x = 0; x </div><p><span style="font-size: medium"><strong>选择排序</strong></span></p><p>选择排序原理图</p><p>选择排序代码</p><div class="gaodaimacode"><pre class="prettyprint linenums"> package cn.itcast_02; /* * 数组排序之选择排序: *     从0索引开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处 */ public class ArrayDemo { public static void main(String[] args) { // 定义一个数组 int[] arr = { 24, 69, 80, 57, 13 }; System.out.println("排序前:"); printArray(arr); //用方法改进 selectSort(arr); System.out.println("排序后:"); printArray(arr); } /* * 数组排序 * */ public static void selectSort(int[] arr){ for(int x=0; x</div><p><span style="font-size: medium"><strong>二分查找法</strong></span></p><p>二分查找法原理</p><p>二分法的代码实现:</p><div class="gaodaimacode"><pre class="prettyprint linenums"> package cn.itcast_04; /* * 查找: *     基本查找:数组元素无序(从头找到尾) *     二分查找(折半查找):数组元素有序 * * 分析: *     A:定义最大索引,最小索引 *     B:计算出中间索引 *     C:拿中间索引的值和要查找的值进行比较 *       相等:就返回当前的中间索引 *       不相等: *         大  左边找 *         小  右边找 *     D:重新计算出中间索引 *       大  左边找 *         max = mid - 1; *       小  右边找 *         min = mid + 1; *     E:回到B */ public class ArrayDemo { public static void main(String[] args) { //定义一个数组 int[] arr = {11,22,33,44,55,66,77}; //写功能实现 int index = getIndex(arr, 33); System.out.println("index:"+index); //假如这个元素不存在后有什么现象呢? index = getIndex(arr, 333); System.out.println("index:"+index); } /* * 两个明确: * 返回值类型:int * 参数列表:int[] arr,int value */ public static int getIndex(int[] arr,int value){ //定义最大索引,最小索引 int max = arr.length -1; int min = 0; //计算出中间索引 int mid = (max +min)/2; //拿中间索引的值和要查找的值进行比较 while(arr[mid] != value){ if(arr[mid]>value){ max = mid - 1; }else if(arr[mid] max){ return -1; } mid = (max +min)/2; } return mid; } } 

Arrays类

 package cn.itcast_05; import java.util.Arrays; /* * Arrays:针对数组进行操作的工具类。比如说排序和查找。 * 1:public static String toString(int[] a) 把数组转成字符串 * 2:public static void sort(int[] a) 对数组进行排序 * 3:public static int binarySearch(int[] a,int key) 二分查找 */ public class ArraysDemo { public static void main(String[] args) { // 定义一个数组 int[] arr = { 24, 69, 80, 57, 13 }; // public static String toString(int[] a) 把数组转成字符串 System.out.println("排序前:" + Arrays.toString(arr)); // public static void sort(int[] a) 对数组进行排序 Arrays.sort(arr); System.out.println("排序后:" + Arrays.toString(arr)); // [13, 24, 57, 69, 80] // public static int binarySearch(int[] a,int key) 二分查找 System.out.println("binarySearch:" + Arrays.binarySearch(arr, 57)); System.out.println("binarySearch:" + Arrays.binarySearch(arr, 577)); } } 

PS:这里再为大家推荐几款相似的在线工具供大家参考:

在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
http://tools.gaodaima.com/aideddesign/paixu_ys

在线JS常见遍历方式性能分析比较工具:
http://tools.gaodaima.com/a来源gao@daima#com搞(%代@#码@网ideddesign/js_bianli

更多关于java相关内容感兴趣的读者可查看本站专题:《Java数组操作技巧总结》、《Java字符与字符串操作技巧总结》、《Java数学运算技巧总结》、《Java数据结构与算法教程》及《Java操作DOM节点技巧总结》

希望本文所述对大家java程序设计有所帮助。

以上就是Java数组高级算法与Arrays类常见操作小结【排序、查找】的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Java数组高级算法与Arrays类常见操作小结【排序、查找】

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址