Java基础冒泡选择排序二分查找

Posted 梅花GG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础冒泡选择排序二分查找相关的知识,希望对你有一定的参考价值。

冒泡排序的思路就是前一个和后一个进行比较,如果大的就交换位置   大的数字后浮

 如   12      8    5     31

第一轮   8   5   12   31

第二轮   5   8    12   31

........

代码如下 

package com.zuoyan.sort;

/**
 * 冒泡排序
 * @author Administrator
 *
 */
public class BubbloSortDemo {
    
    
    public static void main(String[] args) {
        
        int []arr = {10,8,20,3,6,22,16};
        for(int i =0 ;i< arr.length;i++)
        {
            for(int j =0; j<arr.length-1-i;j++)
            {
                if(arr[j]>arr[j+1])
                {
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1]= temp;
                }
            }
        }
        
        
        for (int i : arr) {
            System.out.println(i);
            
        }
        
        
    }

}

 

2.选择排序 

思路就是   将这个数组从头开始遍历  

从第一个开始   与他后面的每个数字进行比较,如果遇见比他小的   这个两个数字进行交换位置,

第二个也是,也是从他后面的进行比较,不用比较第一个了,因为第一个已经是整个数组中的最小数字了

.......

 

 

代码如下

package com.zuoyan.sort;

/**
 * 选择排序
 * @author Administrator
 *
 */
public class SelectSort {
    
    
    public static void main(String[] args) {
        
        int [] arr={1,12,11,8,13,89,45,22,61};
        for(int i=0 ;i<arr.length;i++)
        {
            for(int j =i+1;j<arr.length;j++)
            {
                if(arr[i]>arr[j])
                {
                    int temp =arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        
        for (int i : arr) {
            System.out.println(i);
        }
    }

}

 

3.二分查找 

 

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查找的表为有序表。二分查找的目的是查找出元素的索引,有个前提是数组元素必须是有序

package com.zuoyan.sort;


/**
 * 二分查找算法
 * @author Administrator
 *
 */
public class BinarySearch {

    
    public static void main(String[] args) {
        
        int[] arr = {11,22,33,44,55,66,77};
        
        int num = 51;
        int index = -1;
        int min = 0;
        int max = arr.length-1;
        int mid = (min+max)/2;
        while(true)
        {
            if(arr[mid] == num)
            {
                index = mid;
                break;
            }
            
            if(arr[mid]<num)
            {
                min = mid +1;
                mid = (min+max)/2;
            }
            
            if(arr[mid]>num)
            {
                max = mid-1;
                mid =(max + min)/2;
            }
            
            if(min>max)
            {
                break;
            }
            
        }
        
        System.out.println(index);
        
        
        
    }
}

 

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

Java八股文面试题 基础篇 -- 二分查找算法冒泡排序选择排序插入排序希尔排序快速排序

基础算法-冒泡排序与二分查找(JAVA实现)

01. Java的经典排序--选择排序--冒泡排序--折半查找(二分查找)

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

Java冒泡排序,选择排序,二分查找

14Java常用类(StringBuffer)排序算法(冒泡排序选择排序插入排序快速排序)查找算法(二分查找)