5.数组排序算法
1.冒泡排序
基本思想:
对比相邻的元素值,满足条件就交换位置否则不换
其由双层循环实现
示例:
P85
例子:
public class java_exercise1 {
public static void main(String[]args)
{
int arr[] = {12,45,99,20,5,86,1};
for (int i = 1;i < arr.length;i++)
{
for (int j = 0;j < arr.length-i;j++)
{
if (arr[j] > arr[j+1])
{
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for (int x:arr)
{
System.out.println(x);
}
}
}
程序展示:
2.直接选择排序
基本思想:
将指定排序位置元素与其他数组元素分别对比,满足条件就交换元素值。
注意:
交换的是元素的位置不是元素值
例子:
public class java_exercise1 {
public static void main(String[]args)
{
int arr[] = {12,45,99,20,5,86,1};
int index;
for (int i = 1;i < arr.length;i++)
{
index = 0;
for (int j = 1;j <= arr.length-i;j++)
{
if (arr[j] > arr[index])
{
index = j;
}
}
int temp = arr[arr.length - i];
arr[arr.length -i ] = arr[index];
arr[index] = temp;
}
for (int x:arr)
{
System.out.println(x);
}
}
}
程序展示:
反转排序
即把原数组倒置
例子:
public class java_exercise1 {
public static void main(String[]args)
{
int arr[] = {12,45,99,20,5,86,1};
System.out.println("原数组为:");
for (int x:arr)
{
System.out.print(x+"\t");
}
System.out.println();
int temp;
int len = arr.length;
for (int i = 0;i < len/2;i++)
{
temp = arr[i];
arr[i] = arr[len-1-i];
arr[len-1-i] = temp;
}
System.out.println("反转后数组为:");
for (int x2:arr)
{
System.out.print(x2+"\t");
}
}
}
程序展示: