Java的数组排序

时间:2023-03-10 06:51:54
Java的数组排序

对数组进行排序 使用到的排序算法有:

1 选择排序   2 冒泡排序   3 插入排序    4 JavaAPI提高排序算法

选择排序的原理:

1 将数组中每个元素与第一个元素比较,如果这个元素小于第一个元素,则交换这两个元素
     2 循环第1条规则,找出最小元素,放于第1个位置
     3 经过n-1轮比较完成排序

冒泡排序原理:
      将相邻的元素进行比较,小的放在前面

插入排序原理:
      将数组分为两部分, 将后部分的第一个逐一与前部分每一个元素比较,在合理位置插入
      插入排序算法效率要高于选择排序和冒泡排序

代码如下:

import java.util.Arrays;

/**
* 该类是用于对数组进行排序
* 使用到的排序算法有:1 选择排序 2 冒泡排序
* 3 插入排序 4 JavaAPI提高排序算法
* @author scywxx
*
*/
public class ArraySort { public static void main(String[] args) {
int[] array = {8,3,2,7,1};
//array = selectionSort(array);//调用选择排序
//array = bubbleSort(array);//调用冒泡排序
// array = insertSort(array);//调用插入排序
Arrays.sort(array);//调用javaAPI排序
System.out.println(Arrays.toString(array));//输出选择排序的结 果
//使用JavaAPI提高排序算法 }
/**
* 冒泡排序原理:
* 将相邻的元素进行比较,小的放在前面
* @param array
* @return
*/
public static int[] bubbleSort(int[] array) {
for(int i = 0; i < array.length - 1; i++)//总共进行 array.length-1轮
{
for(int j = 0;j< array.length-i-1; j++)
{
if(array[j] > array [j+1])//比较相邻的元素之 间的大小
{
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
return array;
}
/**
* 选择排序原理:
* 1 将数组中每个元素与第一个元素比较,如果这个元素小于第一个元素,则交 换这两个元素
* 2 循环第1条规则,找出最小元素,放于第1个位置
* 3 经过n-1轮比较完成排序
* @param array
* @return
*/
public static int[] selectionSort(int[] array) { for(int i = 0; i < array.length-1;i++)//总共进行array.length -1轮
{
for(int j = i+1;j<array.length;j++)
{
if(array[j]<array[i])//数组中元素小于第一个元 素
{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
return array;
}
/**
* 插入排序原理:
* 将数组分为两部分, 将后部分的第一个逐一与前部分每一个元素比较,在合 理位置插入
* 插入排序算法效率要高于选择排序和冒泡排序
* @param array
* @return
*/
public static int[] insertSort(int[] array){
int t ,j;
for(int i = 1;i < array.length ;i++)//第一个数已经排好序 后 面的部分取第一个
{
t=array[i];
for( j = i-1;j > 0; j--)//将后部分的第一个逐一与前部 分比较
{
if(t < array[j])
{
array[j+1] = array[j];//该数后移
}
else
{
break;//退出
} }
array[j+1] = t;
}
r