【Java】数组中常用的几种排序方法
本文主要介绍数组中常用的几种排序方法,代码如下:
package com.xzw.csdn;
import java.util.Arrays;
/**
* 数组常用的几种排序
* @author xzw
*
*/
public class PaiXu {
/**
* 主函数
* @param args
*/
public static void main(String[] args) {
int[] array = {12,25,3,56,89};
//将数组里面的元素升序排序1(冒泡排序)
px1(array);
//将数组里面的元素升序排序2(冒泡排序)
px2(array);
//将数组里面的元素升序排序3(冒泡排序)
px3(array);
//选择排序
px4(array);
}
/**
* 将数组里面的元素升序排序1(冒泡排序)
* @param array
*/
public static void px1(int[] array){
int i;
System.out.print("从小到大排序为: ");
for (i = 0; i <= 4; i++){
for (int j = 1; j < array.length; j++){
if ( array[j-1] > array[j]){
array[j-1] ^= array[j];
array[j] ^= array[j-1];
array[j-1] ^= array[j];
}
}
}
for (i = 0; i <= 4; i++)
System.out.print(array[i]+" ");
System.out.println();
}
/**
* 将数组里面的元素升序排序2(冒泡排序)
* @param array
*/
public static void px2(int[] array){
int i, t = 0;
System.out.print("从小到大排序为: ");
for (i = 4; i >= 0; i--){
for (int j = 1; j < array.length; j++){
if ( array[j-1] < array[j]){
t = array[j-1];
array[j-1] = array[j];
array[j] = t;
}
}
System.out.print(array[i]+" ");
}
System.out.println();
}
/**
* 将数组里面的元素升序排序3(冒泡排序)
* @param array
*/
public static void px3(int[] array){
for (int i = 0; i < array.length-1; i++) {//比较次数
for (int j = 0; j < array.length-(i+1); j++) {//比较方法
if(array[j] > array[j+1]){
array[j] ^= array[j+1];
array[j+1] ^= array[j];
array[j] ^= array[j+1];
}
}
}
//遍历
System.out.print("[");
for (int i = 0; i < array.length; i++) {
if (i == array.length-1){
System.out.print(array[i]);
}else{
System.out.print(array[i]+",");
}
}
System.out.println("]");
//System.out.println("最终结果:"+Arrays.toString(array));
}
/**
* 选择排序
* @param array
*/
public static void px4(int[] array){
for (int i = 0; i < array.length-1; i++) {
for (int j = i+1; j < array.length; j++) {
//array[i] vs array[j]
if (array[i] > array[j]){
array[i] ^= array[j];
array[j] ^= array[i];
array[i] ^= array[j];
}
}
System.out.println("第"+(i+1)+"次结果:"+Arrays.toString(array));
}
System.out.println("最终结果:"+Arrays.toString(array));
}
}
你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题。
还没有评论,来说两句吧...