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

数组常用算法举例加解释(第一篇)

时间:2019-04-17 00:06:10      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:bsp   输入   inf   nbsp   .com   info   个人   ima   new   

 一,插入算法

        一个数组有序,在添加一个元素后,求数组依然有序

       //先定义一个数组(如要添加元素,咱们得在元素末尾空出来一个预备位0),顺便定义要加入的元素t
        int []a=new int[]{1,3,7,9,12,20,0};
        int t=8;
        //首先咱们得找到该元素 的位置排在第几位:让t和数组中的每一个元素 依次 参与比较 直到遇到恰好比他大的那个元素
        int loc=-1; //表示t应该在的位置
        for(int i=0; i<a.length-1;i++){
            if(a[]>=t){
                loc=i;
                break;
            }
        }
        //如果没找到合适位置
        if(loc<0){
            a[a.length-1]=t;
        }else{    //其它元素依次后移
            for(int j=0; j<a.length-1;j--){
                a[j]=a[j-1];
            }

           //添加插入的值

        a[loc] = t;
        }

                           for(int i = 0;i<arr.length;i++){     //验证

                               System.out.print(arr[i]+"\t");

                       }

二,删除算法

          一个有序的数组,删除一个元素后依然有序

        int []a={1,3,7,9,12,20};
    int t=1;
       //1,找位置
       int loc=-1;
       for(int i=0;i<a.length;i++){
           if(a[i]=t){
               loc=i;
                break;
           }
       }
       //2,移动元素
       if(loc<o){
           System.out.println("输入的数在数组中不存在");
       }else{
           for(int j=loc;j<a.length-1;j--){
               a[j]=a[j+1];
           }
           //最后一个元素置0
           a[a.length-1]=0;
       }
           //验证输出
           for(int i = 0;i<arr.length;i++){
            System.out.print(arr[i]+"\t");
           }

      *个人觉得比插入算法简单些。。。

三,冒泡算法

     该算法特点:需要将数组内元素两两对比

技术图片

        

// 对一个无序的数组进行排序

       int[] arr = {10,5,3,4,2,9,7};

      

       int tmp = 0;

       for(int i=0;i<arr.length-1;i++){ // 外层控制趟数

          

           for(int j=0;j<arr.length-1-i;j++){ // 两两比较

              

               if(arr[j]>arr[j+1]){

                   tmp = arr[j];

                   arr[j] = arr[j+1];

                   arr[j+1] = tmp;

               }

           }

       }

       for(int i=0;i<arr.length;i++){

         System.out.print(arr[i]+"\t");

       }

数组常用算法举例加解释(第一篇)

标签:bsp   输入   inf   nbsp   .com   info   个人   ima   new   

原文地址:https://www.cnblogs.com/zhangxiong-tianxiadiyi/p/10720942.html

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