数组的排序:
数组的排序分为八大排序方法:
①:插入排序的直接插入排序和希尔排序。
②:选择排序的简单选择排序和堆排序。
③:交换排序的冒泡排序和快速排序。
④:归并排序。
⑤:基数排序。
下面就具体举例几种简单的排序:
(1)冒泡排序
冒泡排序就是数组两个数之间两两对比,选出最大或者最小的值进行排序
class ShuZu
{
public static void main(String[] args)
{
int a[]={-5,1,3,6,1,0,9,-2};
// 定义一个数组,数组的个数为8.
for (int i=0;i<7;i++ )
// 确定一个变量,定义外部循环的条件
{
for (int j=1+i;j<8;j++)
// 确定另一个变量,定义内部循环的条件,
{
if (a[i]<a[j]) //
比较大小值,一个数与相邻的一个数做对比,如果小就交换位置
{
int T=a[j];
a[j]=a[i];
a[i]=T; //
满足条件,交换位置
}
}
}
for (int i=0;i<8 ;i++ )
//定义输出的循环
{
System.out.println(a[i]);
// 输出排序后的结果
}
}
}
(2) 插入排序
直接插入排序的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的有序序列中的适当位置,直到全部记录插入完成为止。
class test1
{
public static void main(String[] args)
{
int a[]={84,62,4515,75,26,32};
//首先定义数组以及数组的个数。
int b=1;
int c=0;
int d=6;
for (b=1;b<d ;b++ )
// 确定变量,定义外部循环条件。
{
for (c=b-1;c>=0&&a[c]>a[c+1] ;c-- )
// 确定变量, 定义内部循环的条件
{
int e=a[c];
// 此内部循环是从1下标开始向前比较,如若前面的值比后面的大,则交换位置,以此类推。最终形成有序的区间
a[c]=a[c+1];
a[c+1]=e;
}
}
for (int f=0;f<6 ;f++ )
{
System.out.println(a[f]);
// 最后输出排序后的结果
}
}
}
(3)选择排序
选择排序中的用下标排序:在未排序的序列中选择出最小值的下标,并用最小值下标的元素与未排序序列的
首元素进行交换
public class Demo{
public static void main(String[] args)
{
int[] arr = {55 ,45, 86, 17, 23};
// 先定义数组的个数
for(int i = 0;i < arr.length - 1;i++)
// 确定变量,并定义外部循环条件
{
int minIndex = i;
// 这里定义一个最小值的下标。
for(int j = i +1; j < arr.length;j++)
// 确定变量,定义内部循环条件
{
if(arr[minIndex] > arr[j])
// 如果定义的下标数大于相邻的这个数,则交换位置,以此类推。
{
minIndex = j;
}
}
if(minIndex != i)
// 这里所定义的值不等于i, 则进入下面条件
{
int temp;
temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
for(int i = 0;i< arr.length;i++)
{
System.out.println(arr[i]);
// 输出所排列的结果
}
}
}