几种常用的排序方法:
排序方法在编程中经常被使用,下面图片简单直观地列举了几种排序的时间复杂度和空间复杂度以及稳定性。
这次我们用Java语言实现冒泡排序,首先介绍下冒泡排序。
排序:将一组数据按照固定的规则进行排列
冒泡排序:一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,依次对所有的数据进行操作,直至所有数据按要求完成排序。
具体实现:
如果有n个数据进行排序,总共需要比较n-1次。
每一次比较完毕,下一次的比较就会少一个数据参与。
下面是代码:
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
//定义一个数组并且静态初始化
int[] arr = {11, 27, 45, 9, 33};
//输出排序前的数组
System.out.println("排序前为" + Arrays.toString(arr));
//冒泡排序
for (int x = 0; x < arr.length - 1; x++) {
for (int i = 0; i < arr.length - 1 - x; i++) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
System.out.println("排序后:" + Arrays.toString(arr));
}
}
运行结果:
原码:
package 小案例练习.排序;
import 数组最大值.Array;
import java.util.Arrays;
/*
冒泡排序原理:
一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,依次对所有的数据进行操作,直至所有数据按要求完成排序
1.如果有n个数据进行排序,总共需要比较n-1次
2.每一次比较完毕,下一次的比较就会少一个数据参与
*/
public class BubbleSort {
public static void main(String[] args) {
//定义一个数组并且静态初始化
int[] arr = {11, 27, 45, 9, 33};
//输出排序前的数组
System.out.println("排序前为" + Arrays.toString(arr));
//冒泡排序
for (int x = 0; x < arr.length - 1; x++) {
for (int i = 0; i < arr.length - 1 - x; i++) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
System.out.println("排序后:" + Arrays.toString(arr));
}
}
/*
//定义一个方法 将数组中元素按 [元素1,元素2,元素3] 这种规则组成字符串输出。
public static String arrayToString(int [] arr){
StringBuilder sb=new StringBuilder();
sb.append("[");
//遍历数组 如果是不是最后一个元素就在后面加上", "
for(int i=0;i<arr.length;i++){
if(i == arr.length-1){
sb.append(arr[i]);
}else
sb.append(arr[i]).append(", ");
}
sb.append("]");
return sb.toString();
}
}
*/