数组查询和冒泡排序算法

package com.xxx.xxx;

import java.util.Arrays;

public class demo10 {

    /**
     * 1、数组查询
     * 2、冒泡数组排序
     * @param args
     */
    public static void main(String[] args) {
        //1、数组查询
        /**
         * binarySearch(Object a[],Object key) 用的时候要先进行排序,如果没排序,则返回的结果是不确定的
         * a 要搜索的数组
         * key 要搜索的值    (如果key包含在数组中、则返回搜索值的索引、否则返回-1或“-”【插入点】)
         */
        int arr4[] = new int[]{23,45,44,75,14,45};    //定义数组
        Arrays.sort(arr4);    //进行排序
        int index = Arrays.binarySearch(arr4,14);    //搜索 14 的位置,排序后的索引是 0
        System.out.println("14的索引位置是:"+index);    //输出

        //1.1、数组排序2
        /**
         * binarySearch(Object [].a,int fromIndex,int toIndex,Object key)
         * a 要进行检索的数组
         * fromIndex 指定范围的开始处索引(包含)
         * toIndex 指定范围的结束索引(不包含)
         * key 要搜索的值
         */
        String str[] = new String[]{"ab","cd","ef","gh"};    //定义数组
        Arrays.sort(str);    //进行排序
        int index1 = Arrays.binarySearch(str,0,2,"cd");    //搜索 14 的位置,排序后的索引是 0
        System.out.println("cd的索引位置是:"+index1);    //输出

        System.out.println("---------------------");
        //2、 数组排序
        //2.1、冒泡排序
        /**
         * 0、小数往前放,大数往后放
         * 1、冒泡算法是由双层循环实现,其中外层循环用于控制排序轮数,一般为数组的长度-1
         * 因为最后一次循环只剩下一个数组元素,不需要对比,同时数组已经完成排序
         * 2、内层循环主要用于对比数组中每个临近元素的大小,以确定是否交换位置,对比和交换次数随排序轮数而减少
         */
        int[] array = {63,4,24,1,3,15};    //创建数组是乱序的
        for(int i=0;i<array.length;i++){
            //比较相邻两个元素,较大的往后冒泡
            for(int j=0;j<array.length-1;j++){
                if(array[j] > array[j+1]){    //if判断
                    int temp = array[j];    //把第一个元素的值保存在临时变量中
                    array[j] = array[j+1]; //把第二个元素保存在第一个元素中
                    array[j+1] = temp;         //把临时变量(也就是第一个元素的值)保存在第二个元素中
                }
            }
        }
        //遍历数组输出
        for(int i : array){
            System.out.print(">"+i);
        }

        System.out.println("---------------------");
        
    }

}

 

posted @ 2014-12-15 12:52  小菜希  阅读(260)  评论(0编辑  收藏  举报