黑马程序员—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学习型技术博客、期待与您交流! -----------
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学习型技术博客、期待与您交流! -----------
相关文章推荐
- 黑马程序员_java基础学习笔记之排序算法(选择排序、冒泡排序
- 黑马程序员_java基础学习笔记02_选择结构和循环语句语句
- 黑马程序员java学习— 数组的选择排序和冒泡排序
- 黑马程序员——java基础排序算法:选择排序、冒泡排序和插入排序
- [算法学习笔记]冒泡排序和选择排序
- 学习笔记之快速排序——quicklySort——基础算法——java
- 8大内部排序算法学习笔记--(3)选择排序java实现
- JAVA学习笔记---java语言实现冒泡排序,选择排序,反转排序
- JAVA学习笔记之选择排序与冒泡排序
- 算法(第四版)学习笔记之java实现选择排序
- Java学习笔记(五)--二维数组 冒泡排序 选择排序 Arrays数组工具类
- 黑马程序员---Java基础学习笔记(IO-前篇)
- 黑马程序员之WinForm编程基础学习笔记:日月选择器,假设2月份总是28天。1,3,4,7,8,10,12月份是31天,其他是30天。
- 黑马程序员——Java基础学习笔记(一)
- 算法学习之排序——冒泡排序及其改进算法(Java)
- 黑马程序员--Java基础学习笔记【正则表达式、常用API】
- 黑马程序员—17—java基础:有关API的使用学习笔记和心得体会
- 黑马程序员-java基础学习笔记第二篇
- Java基础学习笔记 -- 10(数组排序)
- 黑马程序员--数组的排序和查找--java学习日记2(基础知识)