排序(sort)是将一组数据按照一定的规则来进行排列,一般按照递增或者递减的顺序来进行排列。排序算法是一种最基本的算法,但是在实际应用中非常广泛,对于初学编程人来说,排序算法也是最基本的算法之一。本节主要讲解排序算法中相对简单的几种,分别是:
1、冒泡排序
2、选择排序
3、插入排序
后边还会介绍一些,其他的排序方法,比如:shell排序、快速排序、堆排序等等。
1、冒泡排序 (简单基本)
public static void bubbleSort(int[] a) {
int temp;
for (int i = 1; i < a.length; i++) {
//将相邻两个数进行比较,较大的数往后冒泡
for (int j = 0; j < a.length - i; j++) {
if (a[j] > a[j + 1]) {
//交换相邻两个数
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
System.out.print("第"+i+"步排序结果:"); //输出每步排序的结果
for(int k=0;k<a.length;k++)
{
System.out.print(" "+a[k]); // 输出
}
System.out.print("\n");
}
}
2、选择排序
public static void selectSort(int[] a)
{
int index,temp;
for (int i = 0; i < a.length-1; i++)
{
index = i;
for (int j = i+1; j <a.length; j++)
{
if (a[j] < a[index])
{
index = j;
}
}
//交换两个数
if(index!=i)
{
temp=a[i];
a[i]=a[index];
a[index]=temp;
}
System.out.print("第"+i+"步排序结果:"); //输出每步排序的结果
for(int h=0;h<a.length;h++)
{
System.out.print(" "+a[h]); //输出
}
System.out.print("\n");
}
}
3、插入排序
static void insertionSort(int[] a) //插入排序
{
int i,j,t,h;
for (i=1;i<a.length;i++)
{
t=a[i];
j=i-1;
while(j>=0 && t<a[j])
{
a[j+1]=a[j];
j--;
}
a[j+1]=t;
System.out.print("第"+i+"步排序结果:"); //输出每步排序的结果
for(h=0;h<a.length;h++)
{
System.out.print(" "+a[h]); //输出
}
System.out.print("\n");
}
}
前三种排序方式相对简单,但却非常基本,掌握之后用处很大。