博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
查找与排序 In Java
阅读量:4029 次
发布时间:2019-05-24

本文共 1832 字,大约阅读时间需要 6 分钟。

直接记录一段代码

package searchandsort;public class SortingAndSearch
> { /** * 线性查找 * @param data 数组对象 * @param min 起始索引 * @param max 结束索引 * @param target 查找目标 * @return 是否查找到 */ public boolean linearSearch(T[] data, int min, int max, T target) { int index = min;; boolean found = false; while (!found && index <= max) { if (data[index].compareTo(target) == 0) { found = true; break; } index++; } return found; } //二分查找 public boolean binarySearch(T[] data, int min, int max, T target) { boolean found = false; int mid = (max + min) / 2; //中间 if (data[mid].compareTo(target) == 0) { //找到了 found = true; } else if (data[mid].compareTo(target) > 0) { if (min <= mid - 1) { found = binarySearch(data, min, mid-1, target); //左边递归 } } else { if (mid + 1 <= max) { found = binarySearch(data, mid+1, max, target); //左边递归 } } //1 4 1 1 return found; } //选择排序 public void selectionSort(T[] data) { int min, len = data.length; T temp; for (int index = 0; index < len - 1; index++) { min = index; for (int scan = index + 1; scan < len; scan++) { if (data[scan].compareTo(data[min]) < 0) { min = scan; } } if (index != min) { temp = data[min]; data[min] = data[index]; data[index] = temp; } } } static class Contact implements Comparable
{ public String firstName, lastName; public Contact(String firstName, String lastName) { super(); this.firstName = firstName; this.lastName = lastName; } @Override public int compareTo(Contact o) { int res; if (lastName.equals(o.lastName)) { res = firstName.compareTo(o.firstName); } else { res = lastName.compareTo(o.lastName); } return res; } @Override public String toString() { return "Contact [firstName=" + firstName + ", lastName=" + lastName + "]"; } }}

转载地址:http://frlbi.baihongyu.com/

你可能感兴趣的文章
相似度与距离算法种类总结
查看>>
贝叶斯
查看>>
推荐系统总结
查看>>
relu与sigmod的比较
查看>>
交叉熵和均方差损失函数的比较(Cross-Entropy vs. Squared Error)
查看>>
九大排序算法总结
查看>>
Spannable 和 Editable、SpannableString 和 SpannableString
查看>>
Java注解Annotation使用
查看>>
Handler、Message、Looper、MessageQueue
查看>>
java多线程之六种状态
查看>>
go指针
查看>>
设计模式之工厂模式---对象的实例化部分提取出来---三种不同的提取方法
查看>>
设计模式之策略模式
查看>>
设计模式之观察者模式
查看>>
设计模式之装饰者模式
查看>>
设计模式之代理模式
查看>>
设计模式之组合模式
查看>>
javaIO
查看>>
activity
查看>>
Fragment
查看>>