冒泡排序二分查找法

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          }     
     }

 

 

 

以上是关于冒泡排序二分查找法的主要内容,如果未能解决你的问题,请参考以下文章

二分查找法 冒泡排序法

冒泡排序法与二分查找法

冒泡排序,递归二分查找法,二分查找法

冒泡排序二分查找法

0913作业(冒泡排序二分查找法模拟摇乐游戏)

Java学习 数组,查找算法,二分查找法,冒泡排序,选择排序,插入排序