码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡排序、二分查找法

时间:2016-02-29 00:38:40      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

冒泡排序的基本思想是对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把大的元素移动到数组后面(也就是交换两个元素的位置),这样数组元素就像气泡一样从底部上升到顶部。

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

 

 

 

冒泡排序、二分查找法

标签:

原文地址:http://www.cnblogs.com/cycanfly/p/5225944.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!