java中的几种基础排序,查找方法
来源:互联网 发布:在淘宝上买衣服的技巧 编辑:程序博客网 时间:2024/04/28 06:18
1:冒泡排序:
public static void main(String[] args){ int[] array={1,3,7,3,8,4,0,4,3,8,5,6}; /** * 冒泡排序,见名思意就是:每次选择一个数作为目标操作数,和下一个数字比较,选择较大或者较小的往后移位。 * 总共循环次数,为数组长度-1. * 每次比较的次数,又因为每次都将最小数放到最后,下次则不需要再对上次确定的最小数做比较,所以每次的操作数都会递减。 * 而初次比较的次数为数组元素个数-1 */ //从大到小排序 for(int i=0;i<array.length-1;i++){ //控制循环次数 //控制每轮循环的比较次数,没循环一次,找到一个参与比较中的最小数,写下次比较次数减少1个 for (int k=0;k<array.length-1-i;k++){ if(array[k]<array[k+1]){ //从大到小排序,其实是找最小数,将最小数往后移位(冒泡) int temp=array[k+1]; array[k+1]=array[k]; array[k]=temp; } } } //从小到大排序,只是将最大的后移,只需要将上述方法中的比较符号 '<' 变成 '>' . for(int i=0;i<array.length-1;i++){ //控制循环次数 //控制每轮循环的比较次数,没循环一次,找到一个参与比较中的最小数,写下次比较次数减少1个 for (int k=0;k<array.length-1-i;k++){ if(array[k]>array[k+1]){ //从大到小排序,其实是找最小数,将最小数往后移位(冒泡) int temp=array[k+1]; array[k+1]=array[k]; array[k]=temp; } } }//循环输出数组元素 for(int a:array){ System.out.println(a); } }
2:二分法查找
public class BinarySearch {
public static void main(String[] args){
int[] array={1,3,5,6,7,9,11,22,45,66,89,96,132,435,765,800};
int[] array_1={999,888,777,66,56,45,34,23,12,9,6,4,2,0};
int index=getIndex(array,11);
System.out.println("要查找的数字在数组中的索引为:"+index);
int index_1=getIndex(array_1,2);
System.out.println("要查找的数字在数组中的索引为:"+index_1);
}
public static int getIndex(int[] array,int num){
int minIndex=0;
int maxIndex=array.length-1;
int midIndex=(minIndex+maxIndex)/2;
//我们只知道数组是有序的,但并不知道是升序还是降序,首先做判断
if (array[0]>array[array.length-1]){
while(num!=array[midIndex]){
if (array[midIndex]>num){
minIndex=midIndex+1;
}else{
maxIndex=midIndex-1;
}
midIndex=(minIndex+maxIndex)/2;
}
}else{
while(num!=array[midIndex]){
if (array[midIndex]>num){
maxIndex=midIndex-1;
}else{
minIndex=midIndex+1;
}
midIndex=(minIndex+maxIndex)/2;
}
}
return midIndex;
}
}
- java中的几种基础排序,查找方法
- Java中的几种排序方法
- Java中的几种排序方法
- MyEclipse中的几种查找方法
- JAVA几种排序方法
- java几种排序 方法
- java几种排序方法
- C语言中的几种排序方法
- java中的几种排序总结
- JAVA 中的几种简单排序算法
- java基础-排序和查找
- Java几种排序方法比较
- Java实现几种常见排序方法
- java排序的几种方法
- Java实现几种常见排序方法
- Java实现几种常见排序方法
- java实现排序的几种方法
- Java实现几种常见排序方法
- 反转链表
- 方法引用
- ArrayList,Vector,LinkedList的存储性能和特性
- 使用AFNetWorking POST请求时 传数组和字典嵌套的问题
- SQL通过角色创建只能访问指定视图的用户
- java中的几种基础排序,查找方法
- 浅析Java语言慢的原因
- ubuntu下找不到无线
- Java入门之面对对象
- 量化投资交易python工具干货大全
- 【DDD】领域驱动设计实践 —— 限界上下文识别
- 国务院印发《促进大数据发展行动纲要》
- BGA集成电路脚位识别
- PTA 7-16 求符合给定条件的整数集