您的位置:首页 > 职场人生

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

2013-12-15 22:38 906 查看
----------- android培训java培训、java学习型技术博客、期待与您交流! -----------
Java中数组排序算法有选择排序和冒泡排序。
选择排序:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
特点:最值出现在0角标元素
package
com.itheima;
public
class
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);
     }
}

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

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学习型技术博客、期待与您交流! -----------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: