冒泡排序:就是整个过程就像气泡一样往上升,单向冒泡排序的思想就是(假设有小到大的排序):对于指定的n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换位置,进行一轮比较和换位后,n个记录中的最大值将位于第n位,然后对前(n-1)个记录进行第二轮比较;重复该过程直到进行比较记录只剩下一个为止。
例:以数组{36,25,48,12,25,65,43,57}为例,冒泡排序程序如下:
package com.company; /** * Created by Administrator on 2019/1/20. */ public class Mpsort { public static void main(String[] args) { // 冒泡排序 int[] arr={36,25,48,12,25,65,43,57}; System.out.println("冒泡排序前的顺序:"); for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } System.out.println(); // 排序 sort(arr); System.out.println("冒泡排序后的顺序:"); for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } System.out.println(); } public static void sort(int[] arr){ for(int i=0;i<arr.length-1;i++){ for(int j=0;j<arr.length-1-i;j++){ if(arr[j]>arr[j+1]){ int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } } }
选择排序:就是从未排序中选择最小的元素放入到已排序元素的最后面,程序代码如下:
package com.company; /** * Created by Administrator on 2019/1/20. */ public class Xzsort { public static void main(String[] args) { // 选择排序 int[] arr={36,25,48,12,25,65,43,57}; System.out.println("排序前的数组:"); for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } System.out.println(); quickSort(arr); System.out.println("排序后的数组:"); for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } } public static void quickSort(int[] arr){ for(int i=0;i<arr.length-1;i++){ for(int j=i+1;j<arr.length;j++){ if(arr[i]>arr[j]){ int temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } } }