1、冒泡排序(从小到大排序)
原理:
通过相邻的2个数不断比较和交换位置来完成排序。
a实现逻辑:
a.1拿第一个数和第二个数进行比较,如果第二个数小就把它换到前面;
a.2拿第二个和第三个进行比较如果第三个数大就不交换位置;
a.3然后依次拿第三个和后面的比较。总共比较数组的总数此。
b、实现代码
package sort;
import java.util.Arrays;
public class Sort {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int array[] = {123,2424,3534,63,34,23,425,342};
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length - 1; j++) {
if (array[j] > array[j + 1]) {
array[j] ^= array[j + 1];
array[j + 1] ^= array[j];
array[j] ^= array[j + 1];
}
}
System.out.println(Arrays.toString(array));
}
System.out.println(Arrays.toString(array));
}
循环的过程:
[123, 2424, 63, 34, 23, 425, 342, 3534]
[123, 63, 34, 23, 425, 342, 2424, 3534]
[63, 34, 23, 123, 342, 425, 2424, 3534]
[34, 23, 63, 123, 342, 425, 2424, 3534]
[23, 34, 63, 123, 342, 425, 2424, 3534]
[23, 34, 63, 123, 342, 425, 2424, 3534]
[23, 34, 63, 123, 342, 425, 2424, 3534]
[23, 34, 63, 123, 342, 425, 2424, 3534]
[23, 34, 63, 123, 342, 425, 2424, 3534]
最终结果:
[23, 34, 63, 123, 342, 425, 2424, 3534]
2、选择排序:(从小到大排序)
原理:
通过不断的把剩余的数组的值 的最小值取出来放到剩余数的最前面来完成排序
a、实现逻辑
a.1 假设数组的第一个值即下标为0的数最小,拿它和后面的数比较发现有比他小的就交换下标;
a.2 这样通过一次循环后把这个下标对应的值排在第一位,它就是这个数组里面最小的值;
a.3 开始拿第二 个下标即下标为1 对应的那个值与后面的数值比较,方法同a.1;a.2;
a.4 通过这样不断的循环最终把这组数从小到大排列出来。
b、实现代码
package sort;
import java.util.Arrays;
public class Sort {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int array[] = { 123, 2424, 3534, 63, 34, 23, 425, 342 };
int minIdex = 0;
boolean isChange = false;
for (int i = 0; i < array.length - 1; i++) {
for (int j = i + 1; j < array.length; j++) {
if (array[j] < array[minIdex]) {
;
minIdex = j;
isChange = true;
}
}
if (isChange) {
array[i] ^= array[minIdex];
array[minIdex] ^= array[i];
array[i] ^= array[minIdex];
}
minIdex = i + 1;
isChange = false;
System.out.println(Arrays.toString(array));
}
System.out.println(Arrays.toString(array));
}
}
循环的过程:
[23, 2424, 3534, 63, 34, 123, 425, 342]
[23, 34, 3534, 63, 2424, 123, 425, 342]
[23, 34, 63, 3534, 2424, 123, 425, 342]
[23, 34, 63, 123, 2424, 3534, 425, 342]
[23, 34, 63, 123, 342, 3534, 425, 2424]
[23, 34, 63, 123, 342, 425, 3534, 2424]
[23, 34, 63, 123, 342, 425, 2424, 3534]
最终结果:
[23, 34, 63, 123, 342, 425, 2424, 3534]