冒泡排序二分查找法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序二分查找法相关的知识,希望对你有一定的参考价值。
冒泡排序的基本思想是对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把大的元素移动到数组后面(也就是交换两个元素的位置),这样数组元素就像气泡一样从底部上升到顶部。
1 package com.hanqi; 2 3 public class maopao { 4 5 public static void main(String[] args) { 6 int[]array=new int[]{63,4,24,1,3,13}; 7 System.out.println("冒泡排序法的过程是:"); 8 for(int i=1;i<array.length;i++) 9 { 10 for(int j=0;j<array.length-i;j++) 11 { 12 if(array[i]>array[j+1]) 13 { 14 int temp=array[j]; 15 array[j]=array[j+1]; 16 array[j+1]=temp; 17 } 18 System.out.print(array[j]+" "); 19 } 20 System.out.print("【"); 21 for(int j=array.length-i;j<array.length;j++) 22 { 23 System.out.print(array[j]+" "); 24 } 25 System.out.print("】"); 26 } 27 28 } 29 30 }
二分查找法
假定有序数组,首先查找中间元素,记录中间元素下标,如果中间元素不是待查找的数,则递归调用该方法;
如果待查找的数比该中间元素小,则左边下标不变,右边下标变成中间元素下标减1,反之右边下标不变,左边下标变为中间元素下标加上1 ;
指定递归调用跳出条件。右边下标大与左边下标时才去执行递归方法。
1 package com.hanqi; 2 3 public class maopao { 4 5 public static void main(String[] args) { 6 int middelIndex = (leftIndex + rightIndex) / 2; 7 int middelVal = arr[middelIndex]; 8 // 递归执行的条件 9 if (rightIndex >= leftIndex) 10 { 11 if (middelVal > findNum) 12 { 13 find(leftIndex, middelIndex - 1, findNum, arr); } 14 else if (middelVal < findNum) 15 { 16 find(middelIndex + 1, rightIndex, findNum, arr); } 17 else 18 { 19 System.out.println(findNum + "在数组中的下标是: " + middelIndex); 20 } 21 } 22 else 23 { 24 System.out.println("数组中不存在: " + findNum); 25 } 26 } 27 public static void main(String[] args) 28 { 29 int arr[] = new int[] { 3, 2, 6, 9, 2, 1, 5, 7, 22, 11, 78 }; find(0, arr.length - 1, 22, arr); 30 }
}
以上是关于冒泡排序二分查找法的主要内容,如果未能解决你的问题,请参考以下文章