`
modabobo
  • 浏览: 508119 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多
-----------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);

}

}

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

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学习型技术博客、期待与您交流!-----------
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics