排序(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"); } }
前三种排序方式相对简单,但却非常基本,掌握之后用处很大。