如何排序数组并搜索其中的元素?

以下示例显示如何使用sort()binarySearch()方法来完成任务。用户定义的方法printArray()用于显示数组输出:

package com.yiibai;

import java.util.Arrays;

public class ArraySortAndSearch {
public static void main(String args[]) throws Exception {
int array[] = { 2, 5, -2, 6, -3, 8, 0, -7, -9, 4 };
Arrays.sort(array);
printArray("Sorted array", array);
int index = Arrays.binarySearch(array, 2);
System.out.println("Found 2 @ " + index);
} private static void printArray(String message, int array[]) {
System.out.println(message + ": [length: " + array.length + "]"); for (int i = 0; i < array.length; i++) {
if (i != 0) {
System.out.print(", ");
}
System.out.print(array[i]);
}
System.out.println();
}
}
Java

执行上面示例代码,得到以下结果 -

Sorted array: [length: 10]
-9, -7, -3, -2, 0, 2, 4, 5, 6, 8
Found 2 @ 5
Shell

线性搜索

以下示例显示使用线性搜索的搜索数组元素。

package com.yiibai;

public class ArraySortAndSearch2 {
public static void main(String[] args) {
int[] a = { 2, 5, -2, 6, -3, 8, 0, -7, -9, 4 };
int target = 0; for (int i = 0; i < a.length; i++) {
if (a[i] == target) {
System.out.println("Element found at index " + i);
break;
}
}
}
}
Java

执行上面示例代码,得到以下结果 -

Element found at index 6
Shell

冒泡排序

以下示例显示使用冒泡排序方法来排序数组元素。

package com.yiibai;

public class ArraySortAndSearch3 {
static void bubbleSort(int[] arr) {
int n = arr.length;
int temp = 0;
for (int i = 0; i < n; i++) {
for (int j = 1; j < (n - i); j++) {
if (arr[j - 1] > arr[j]) {
temp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = temp;
}
}
}
} public static void main(String[] args) {
int arr[] = { 2, 5, -2, 6, -3, 8, 0, -7, -9, 4 };
System.out.println("Array Before Bubble Sort"); for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
bubbleSort(arr);
System.out.println("Array After Bubble Sort"); for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
Java

执行上面示例代码,得到以下结果 -

Array Before Bubble Sort
2 5 -2 6 -3 8 0 -7 -9 4
Array After Bubble Sort
-9 -7 -3 -2 0 2 4 5 6 8

Java数组排序和搜索的更多相关文章

  1. Java import以及Java类的搜索路径

    如果你希望使用Java包中的类,就必须先使用import语句导入.import语句与C语言中的 #include 有些类似,语法为:    import package1[.package2-].cl ...

  2. Java数组排序

    Java数组排序Arrays.sort,以及Comparator接口的用法 有的时候需要对数组里的element进行排序.当然可以自己编写合适的排序方法,但既然java包里有自带的Arrays.sor ...

  3. Elasticsearch java api 基本搜索部分详解

    文档是结合几个博客整理出来的,内容大部分为转载内容.在使用过程中,对一些疑问点进行了整理与解析. Elasticsearch java api 基本搜索部分详解 ElasticSearch 常用的查询 ...

  4. Java知多少(9) import及Java类的搜索路径

    如果你希望使用Java包中的类,就必须先使用import语句导入. import语句与C语言中的 #include 有些类似,语法为:    import package1[.package2…].c ...

  5. java 模拟简单搜索

    Java 模拟简单搜索 实体类 package org.dennisit.entity; /** * * * @version : 1.0 * * @author : 苏若年 <a href=& ...

  6. 纯小白干货:Java import以及Java类的搜索路径

    如果你希望使用Java包中的类,就必须先使用import语句导入.import语句与C语言中的 #include 有些类似,语法为:import package1[.package2-].classn ...

  7. Java数组排序和查找

    Java 1.2 添加了自己的一套实用工具,可用来对数组或列表进行排列和搜索.这些工具都属于两个新类的"静态"方法.这两个类分别是用于排序和搜索数组的Arrays,以及用于排序和搜 ...

  8. Java虚拟机之搜索class文件

    Java命令 Java虚拟机的工作是运行Java应用程序.和其他类型的应用程序一样,Java应用程序也需要一个入口点,这个入口点就是我们熟知的main()方法.如果一个类包含main()方法,这个类就 ...

  9. java 框架-企业级搜索 Solr

    https://blog.csdn.net/cs_hnu_scw/article/details/79388080 一:Solr简介       Solr是一个独立的企业级搜索应用服务器,它对外提供类 ...

随机推荐

  1. do-release-upgrade升级笔记

    事后的总结: 后来可能因为阿里云镜像并不是完全底层无关镜像,do-release-upgrade后的18.04版本在经过一次异常的内核版本升级以后,restart失败,因为是虚机还很难处理,不得不直接 ...

  2. TCP三次握手,四次分手

    1.什么是HTTP连接 http是建立在TCP协议之上的一种应用. 最显著的特点是每次请求,都需要服务器响应,请求结束后,会主动释放连接. 1)在HTTP 1.0中,客户端的每次请求都要建立一次单独的 ...

  3. Effective Spark RDDs with Alluxio【转】

    转自:http://kaimingwan.com/post/alluxio/effective-spark-rdds-with-alluxio 1. 介绍 2. 引言 3. Alluxio and S ...

  4. bash里wget失败

    直接使用wget是可以的,然而在shell脚本里却不行,后来发现原来是换行符的问题,编辑器默认的是\r\n,一不留神,自己把自己坑了

  5. Eclipse 常用插件安装(最新更新:2016-12-06)

    . . . . . Eclipse 用得久了,不停地填充着各种好用的插件.由于我的版本较低,不支持插件导出功能(3.7以上支持),所以把各种体验比较好的插件记录在这里,以便将来全量升级Eclipse时 ...

  6. mysqldump具体应用实例

    1.导出整个数据库  mysqldump -h主机 -u 用户名 -p 数据库名 > 导出的文件名      mysqldump -h127.0.0.1 -u wcnc -p smgp_apps ...

  7. 【微信小程序】tabBar的显示问题

    tabBar不显示 在app.json中配置了4个页面,在tabBar的list中随意写了两个页面,编译后发现不能显示tabBar. { "pages": [ "page ...

  8. C语言 · 错误票据

    历届试题 错误票据   时间限制:1.0s   内存限制:256.0MB        锦囊1 排序. 锦囊2 把所有的编号排序,再扫描一遍数组,即可找到重复的和遗漏的.   问题描述 某涉密单位下发 ...

  9. 将安卓手机短信导入到iPhone6 plus中

    不越狱的情况下短信不能直接同步到iphone手机,视频.图片.联系人可以直接使用itools的手机搬家功能超方便从android到iphone中.短信得变通的处理才能导入. 工具: 安卓手机iPhon ...

  10. [转]Nginx的负载均衡方式

    如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用.具体配置过程如下: 1. 在http节点下,添加ups ...