关于数组的几个小题目-冒泡排序二分查找直接选择排序反转数组

Posted 特立独行的猪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于数组的几个小题目-冒泡排序二分查找直接选择排序反转数组相关的知识,希望对你有一定的参考价值。

1. 实现冒泡排序算法,对比相邻元素,如果满足条件就叫唤元素值,把较小的元素移动到数组前面,把较大的元素移动到数组的后面,这样较小的元素就逐渐从底部上升到顶部,排到前面了。

public class zuoye14_maopaopaixu {
    public static void main(String[] args){
        int[] array = new int[]{12,45,21,35,65,24,43};
        for(int i=0;i<array.length;i++){
            for(int j=0;j<array.length-1;j++){
                if(array[i]<array[j]){
                    int temp=array[i];
                    array[i]=array[j];
                    array[j]=temp;
                }
            }
        }
        for(int i=0;i<array.length;i++){
            System.out.print(array[i]+" ");
        }
    }
}

 技术分享

2.实现二分查找法。

public class zuoye15_erfenchazhao {
    public static void main(String[] args){
        int[] array = new int[]{12,45,21,35,65,24,43};
        for(int i=0;i<array.length;i++){
            for(int j=0;j<array.length-1;j++){
                if(array[i]<array[j]){
                    int temp=array[i];
                    array[i]=array[j];
                    array[j]=temp;
                }
            }
        }
        int left,mid,right;
        left=0;
        right=array.length-1;
        mid=(left+right)/2;
        while(array[mid]!=45){
            if(45>array[mid]){
                left=mid+1;
            }
            else if(45<array[mid]){
                right=mid-1;
            }
            mid=(left+right)/2;
        }
        System.out.println(mid);
    }
}

技术分享

3.采用多种算法,模拟摇奖:从1-36中随机抽出8个不重复的数字

import java.util.Arrays;
import java.util.Random;

public class zuoye13_yaojiangsuijishu {
    public static void main(String[] args){
        int[] array = new int[8];                    //定义一个数组来存放摇到的号
        Random a = new Random();
        int s = a.nextInt(36);                       //生成一个随机数
        if(s!=0)array[0]=s;                          //将第一个随机数给0号位
        for(int i=1;i<8;i++){                        //利用循环去生成其它的随机数
                s=a.nextInt(36);
            for(int j=0;j<i;j++){                    //利用循环去进行比较
                if(array[j]!=s && s!=0){             //与之前的每个序号位上的值进行比较
                    array[i]=s;
                }
                else{
                    i--;
                    break;
                }
            }
        }
        Arrays.sort(array);
        for(int i=0;i<array.length;i++){
            System.out.print(array[i]+" ");
        }
    }
}

技术分享

4、直接选择排序,就是将指定排序位置与其它数组元素分别对比,如果满足条件就交换元素值,区别冒泡排序,不是交换相邻元素,而是把满足条件的元素与指定的排序位置交换。

public class zuoye18_zhijiepaixu {
    public static void main(String[] args){
        int[] array = new int[]{2,4,5,123,55,667,32,356};
        int index;
        for(int i=1;i<array.length;i++){
            index=0;
            for(int j=1;j<=array.length-i;j++){
                if(array[j]>array[index]){
                    index=j;
                }
            }
            int temp=array[array.length-i];
            array[array.length-i]=array[index];
            array[index]=temp;
        }
        for(int k:array){System.out.println(k);}
    }
}

技术分享

5、反转数组,将数组进行反转,把数组最后一个元素与第一个元素替换,倒数第二个与第二个元素替换,依此类推,直到把所有数组元素反转替换。

public class zuoye19_fanzhuanshuzu {
    public static void main(String[] args){
        int[] array = new int[]{123,45,66,33,68,24,89};
        int temp;
        int len = array.length;
        for(int i=0;i<len/2;i++){
            temp=array[i];
            array[i]=array[len-1-i];
            array[len-1-i]=temp;
        }
        for(int j:array){System.out.print(j+" ");}
     }
}

 技术分享

以上是关于关于数组的几个小题目-冒泡排序二分查找直接选择排序反转数组的主要内容,如果未能解决你的问题,请参考以下文章

数组冒泡排序选择排序二分查找法

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

JavaScript-数组(创建访问新增)查找(二分法)排序(冒泡选择)二维数组

常见的几个算法

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

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