黑马程序员—Java基础学习笔记之排序算法:选择排序&冒泡排序

来源:互联网 发布:淘宝最新修改差评链接 编辑:程序博客网 时间:2024/05/16 18:36
----------- android培训java培训java学习型技术博客、期待与您交流! -----------
Java中数组排序算法有选择排序和冒泡排序。
选择排序:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
特点:最值出现在0角标元素
package com.itheima;
publicclass SelectSort {
 //定义功能,用于打印数组中的元素,元素间用逗号隔开

  public static void printArr(int[]arr){

       System.out.print("[");

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

       {

           if(x!=arr.length-1)

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

           else

              System.out.println(arr[x]+"]");

       }

    }

    //定义功能,用于升序排序

    public static void SelectSort(int[] arr)

    {

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

       {

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

           {

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

              {  

                  int temp=arr[x];

                  arr[x]=arr[y];

                  arr[y]=temp;

              }

           }  

       }

       }

    public static void main(String[] args) {

       int[] arr={2,4,7,4,8,1};

       //排序前打印数组元素

       printArr(arr);

       //排序后打印

       SelectSort(arr);

       printArr(arr);

     }

}

冒泡排序:每相邻两元素进行比较,将小的放在前面,大的放在后面。
特点:最值出现在最后角标元素上。

public static void BubbleSort(int[]arr)

    {

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

       {

           for(int y=0;y<arr.length-x-1;y++)//-x:让每一次比较的元素减少。-1:比边角标越界

           {

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

              {  

                  int temp=arr[y];

                  arr[y]=arr[y+1];

                  arr[y+1]=temp;

              }

           }  

       }

    }

注:其实最快的是希尔排序三层循环加位运算哦,作为了解内容系统自带函数Arrays.sort函数排序,开发中要是用它。

----------- android培训java培训java学习型技术博客、期待与您交流! -----------
0 0
原创粉丝点击