目标算法:
冒泡排序
算法思想:
- 比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换
- 这样对数组的第 0 个数据到 N-1 个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置
- N=N-1,如果 N 不为 0 就重复前面二步,否则排序完成
代码实例:
public class Nc_140 {
public static void main(String[] args) {
int[] arr = {5, 2, 3, 2, 4};
arr = MySort(arr);
for (int i : arr) {
System.out.print(i + " ");
}
}
//冒泡排序
public static int[] MySort(int[] arr) {
for (int i = 0; i < arr.length; i++) {
//第一层for循环
for (int j = i + 1; j < arr.length; j++) {
//第二层for循环
if (arr[i] > arr[j]) {
//判断第i个元素和第i+1个元素的大小,我这里是从小到大排序
//所以如果第i个元素大于第i+1个元素,就调换位置,如果小于,就不进行操作
int s = arr[j];
arr[j] = arr[i];
arr[i] = s;
}
//当所有的元素都小于前一位的元素时,就会退出循环
}
}
return arr;
}
}
输出结果如下: