数组的逆序和冒泡排序方法

Posted 软件小生活

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组的逆序和冒泡排序方法相关的知识,希望对你有一定的参考价值。

数组的逆序

 

数组元素逆序 (就是把元素对调)

       

        分析:

                 A:定义一个数组,并进行静态初始化。

                 B:思路

                         0索引和arr.length-1的数据交换

                         1索引和arr.length-2的数据交换

                         ...

                         只要做到arr.length/2的时候即可。

 

 

代码实战:

publicstaticvoid main(String[] args) {

   int[]arr ={1,2,3,4,5};

   // 5 4  3  2  1

 

  

  

  

   reverse(arr);

  

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

   {

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

   }

  

  

  

  

}

 

 

 

 staticvoid reverse(int [] arr)

 {

      /*

      //  第一次

      int  tem = arr[0];

      arr[0]  = arr[arr.length-1-0];

      

      arr[arr.length-1-0]  = tem;

      

      //  第二次

      int  temarr[1];

      arr[1]  = arr[arr.length-1-1];

      arr[arr.length-1-1]  = tem;

      

      */

      

      for(inti=0;i<arr.length/2;i++)

      {

          inttem = arr[i];

          arr[i] = arr[arr.length-1-i];

          arr[arr.length-1-i] = tem;

      }

      

 }

 

 

 

 

 

选择排序

 

给定一个数组:

 

int [] arr = {80,10,8,200,3,210}

 

 

请按照从小到大顺序进行排序

 

 

代码实战:

publicstaticvoid main(String[] args) {

      int [] arr = {80,10,8,200,3,210};

      sort(arr);

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

      {

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

      }

}

 

 staticvoid sort(int [] arr)

 {

      for(intx=0;x<arr.length;x++)

      {

          for(inty=x+1;y<arr.length;y++)

          {

              if(arr[x]>arr[y])

              {

                   inttemp = arr[x];

                   arr[x] = arr[y];

                   arr[y] = temp;

              }

          }

      }

 }

 

 

 

 

 

 

 

 

冒泡排序

int[] arr={24,69,80,57,13}

 

 

冒泡排序的概念

 

冒泡排序:

将一个数组中的元素,两两进行比较,大的往后面放,第一轮比较完成后,数组中最大值得元素会放在数组最大索引的位置,

同理,以此类推,最终会得出一个排序好的数组

 

 

冒泡排序的规律:

 

规律:1)两两比较,数组的最大值在最后面

       2)第一次比较完成后,下一次再比较的时候,就少了一个元素进行比较了

              第一次比较,有0个元素不比较

              第二次比较,有1个元素不比较

              第三次比较,有2个元素不比较

              ..................

      3)总共需要比较的长度是  数组length-1

 

 

部分代码:

 

publicclass Demo1 {

  publicstaticvoid main(String[] args) {

      int[] arr={24,69,80,57,13};

      printArr(arr);

     

      //第一次比较

      for(intx=0;x<arr.length-1;x++)

      {

          if(arr[x]>arr[x+1])

          {

             inttem = arr[x];

             arr[x] = arr[x+1];

             arr[x+1]=tem;

            

          }

      }

      System.out.println("=========第一次比较后:=====");

     

      printArr(arr);

     

    //第二次比较

      for(intx=0;x<arr.length-1-1;x++)

      {

          if(arr[x]>arr[x+1])

          {

             inttem = arr[x];

             arr[x] = arr[x+1];

             arr[x+1]=tem;

            

          }

      }

      System.out.println("=========第二次比较后:=====");

     

      printArr(arr);

  }

 

  publicstaticvoid printArr(int[]arr)

  {

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

      {

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

      }

  }

}

 

【冒泡排序的练习题】:

  • 上课讲解的冒泡排序散代码封装成方法

 


以上是关于数组的逆序和冒泡排序方法的主要内容,如果未能解决你的问题,请参考以下文章

逆序对个数 - 冒泡排序

空元素冒泡排序的逆序

C++如何封装一个数组冒泡排序的方法

java数组算法例题(冒泡排序,选择排序,找最大值最小值,添加删除元素等)

java数组算法例题(冒泡排序,选择排序,找最大值最小值,添加删除元素等)

冒泡排序