Java数组排序:Java sort()方法
Arrays.sort(scores);
Java数组排序:Java冒泡排序(Bubble Sort)法
System.out.println("通过冒泡排序方法对数组进行排序:");
for(int i=0;i<score.length-1;i++)
{
//比较相邻两个元素,较大的数往后冒泡
for (int j=0;j<score.length-1-i;j++)
{
if(score[j]>score[j+1])
{
double temp=score[j+1]; //把第一个元素值保存到临时变量中
score[j+1]=score[j]; //把第二个元素值转移到第一个元素变量中
score[j]=temp; //把临时变量(第一个元素的原值)保存到第二个元素中
}
System.out.print(score[j]+ " "); //对排序后的数组元素进行输出
}
}
Java数组排序:Java快速排序(Quicksort)法
(1) 声明静态的 getMiddle() 方法,该方法需要返回一个 int 类型的参数值,在该方法中传入 3 个参数。代码如下:
public static int getMiddle(int[] list,int low,int high)
{
int tmp=list[low]; //数组的第一个值作为中轴(分界点或关键数据)
while(low<high)
{
while(low<high&&list[high]>tmp)
{
high--;
}
list[low]=list[high]; //比中轴小的记录移到低端
while(low<high&&list[low]<tmp)
{
low++;
}
list[high]=list[low]; //比中轴大的记录移到高端
}
list[low]=tmp; //中轴记录到尾
return low; //返回中轴的位置
}
(2) 创建静态的 unckSort() 方法,在该方法中判断 low 参数是否小于 high 参数,如果是则调用 getMiddle() 方法,将数组一分为二,并且调用自身的方法进行递归排序。代码如下:
public static void unckSort(int[] list,int low,int high)
{
if(low<high)
{
int middle=getMiddle(list,low,high); //将list数组一分为二
unckSort(list,low,middle-1); //对低字表进行递归排序
unckSort(list,middle+1,high); //对高字表进行递归排序
}
}
(3) 声明静态的 quick() 方法,在该方法中判断传入的数组是否为空,如果不为空,则调用 unckSort() 方法进行排序。代码如下:
public static void quick(int[] str)
{
if(str.length>0)
{
//查看数组是否为空
unckSort(str,0,str.length-1);
}
}
Java数组排序:Java选择排序法
for(int i=1;i<number.length;i++)
{
index=0;
for(int j=1;j<=number.length-i;j++)
{
if(number[j]>number[index])
{
index=j; //查找最大值
}
}
end=number[index]+" "+end; //定位已排好的数组元素
int temp=number[number.length-i];
number[number.length-1]=number[index];
number[index]=temp;
System.out.print("【");
for(int j=0;j<number.length-i;j++)
{
System.out.print(number[j]+" ");
}
System.out.print("】"+end);
}
Java数组排序:Java直接插入法
public static void main(String[] args)
{
int[] number={13,15,24,99,4,1};
System.out.println("排序前:");
for(int val:number)
{ //遍历数组元素
System.out.print(val+" "); //输出数组元素
}
int temp,j;
for(int i=1;i<number.length;i++)
{
temp=number[i];
for(j=i-1;j>=0&&number[j]>temp;j--)
{
number[j+1]=number[j];
}
number[j+1]=temp;
}
System.out.println("\n排序后:");
for(int val:number)
{ //遍历数组元素
System.out.print(val+" "); //输出数组元素
}
}