------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
插入排序
将数组中每个元素与第一个元素比较,如果这个元素小于第一个元素,则交换这两个元素循环第1 条规则,找出最小元素,放于第1 个位置经过n-1 轮比较完成排序。
for(int i = 1; i < arr.length; i++) {
int k = arr[i];// 取出待插入元素
int j;// 找到插入位置
for (j = i - 1; j >= 0 && k < arr[j]; j--) {
arr[j + 1] = arr[j];// 移动元素
}
arr[j + 1] = k;// 插入元素
System.out.println(Arrays.toString(arr));
}
冒泡排序
比较相邻的元素,将小的放到前面。
for(int i = 0; i < arr.length - 1; i++) {
boolean isSwap = false;
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int t = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = t;
isSwap = true;
}
}
if (!isSwap) { break; }
System.out.println(Arrays.toString(arr));
}
冒泡排序:轻气泡上浮的方式
冒泡排序法可以使用大气泡沉底的方式,也可以使用轻气泡上浮的方式实现。如下为使用轻气泡上浮的方式实现冒泡排序算法。
for (int i = 0; i < arr.length - 1; i++) {
boolean isSwap = false;
for (int j = arr.length - 1; j > i; j--) {
if (arr[j] < arr[j - 1]) {
int t = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = t;
sSwap = true;
}
}
if (!isSwap) { break; }
System.out.println(Arrays.toString(arr));
}