数组的选择排序和冒泡排序
2016-05-05 21:46
134 查看
一.选择排序
package com.saiermeng;
public class ArrayTest1 {
public static void main(String[] args){
int[] arr = {5,1,6,4,2,8,9};
printArray(arr); // 打印没有排序前的数组
selectSort(arr);
printArray(arr); // 打印排序后的数组
}
/*
选择排序。
内循环结束一次,最值出现头角标位置上。
*/
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 printArray(int[] arr) //把没有排序前的数组,和排序后的数组分别打印一遍。
{
System.out.print("[");
for(int x=0; x<arr.length; x++)
{
if(x!=arr.length-1) //arr.length-1=6
System.out.print(arr[x]+", ");
else
System.out.println(arr[x]+"]"); arr[6]=9,所以9后面不是“,”而是“]”
}
}
}
运行的结果是:
[5, 1, 6, 4, 2, 8, 9]
[1, 2, 4, 5, 6, 8, 9]
二.冒泡排序
package com.saiermeng;
public class ArrayTest3 {
public static void main(String[] args){
int [] arr = new int[]{5,1,6,4,2,8,9};
printArray(arr);
bubbleSort(arr);
printArray(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;
}
}
}
}
public static void printArray(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]+"]");
}
}
}
运行的结果是:
[5, 1, 6, 4, 2, 8, 9]
[1, 2, 4, 5, 6, 8, 9]
package com.saiermeng;
public class ArrayTest1 {
public static void main(String[] args){
int[] arr = {5,1,6,4,2,8,9};
printArray(arr); // 打印没有排序前的数组
selectSort(arr);
printArray(arr); // 打印排序后的数组
}
/*
选择排序。
内循环结束一次,最值出现头角标位置上。
*/
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 printArray(int[] arr) //把没有排序前的数组,和排序后的数组分别打印一遍。
{
System.out.print("[");
for(int x=0; x<arr.length; x++)
{
if(x!=arr.length-1) //arr.length-1=6
System.out.print(arr[x]+", ");
else
System.out.println(arr[x]+"]"); arr[6]=9,所以9后面不是“,”而是“]”
}
}
}
运行的结果是:
[5, 1, 6, 4, 2, 8, 9]
[1, 2, 4, 5, 6, 8, 9]
二.冒泡排序
package com.saiermeng;
public class ArrayTest3 {
public static void main(String[] args){
int [] arr = new int[]{5,1,6,4,2,8,9};
printArray(arr);
bubbleSort(arr);
printArray(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;
}
}
}
}
public static void printArray(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]+"]");
}
}
}
运行的结果是:
[5, 1, 6, 4, 2, 8, 9]
[1, 2, 4, 5, 6, 8, 9]
相关文章推荐
- java 中的this和基本数据类型的值传递
- Jetty启动
- MFC回车后关闭窗口
- 【设计模式】学习笔记——简单工厂模式
- C语言 A律压缩
- 正则表达式大全(深度解析)
- Top K Frequent Elements
- 生成格雷码+微信红包
- UDP套接字的使用介绍
- android studio 学习笔记之 非法字符: '\ufeff'问题解决
- LeetCode 43. Multiply Strings
- poj 2456 Aggressive cows
- 第10章-基于树的方法(1)-生成树
- hdu 1286 找新朋友 欧拉函数模版题
- printf重定向后的Log机制
- 【Python】将Python发布成exe
- Windows驱动开发蓝屏(代码:0x0000007f)
- ScrollView属性fillViewport解决android布局不能撑满全屏的问题
- JAVA Web(http协议和servlet)
- SpringMVC源码总结(一)HandlerMapping和HandlerAdapter入门