一:冒泡排序。
冒泡排序就是利用循环,数组元素和后面一个比较,然后根据我们的需要来交换顺序,每次都会将一个最大或者最小值放到数组后面。
例如数组:{3,1,9,5 ,2}利用冒泡进行从小到大的顺序排列。
第一次循环:3和1比较,3比1大,则3,1交换顺序:{1,3,9,5,2}
之后3和9比较,3比9小,位置不变{1,3,9,5,2}
然后9和5再比较,9比5大,则9,5交换顺序{1,3,5,9,2}
9和2比较,9大,所以9和2交换:{1,3,5,2,9}
第一次循环之后将最大的数移到最后。
第二次循环:
1,3比较,位置不变。
3,5比较位置不变,
5,2比较,5大,交换位置{1,3,2,5,9}
(数组最后一个元素即9,已经验证是最大的了,所以不与要再和9比较)
.......
Java代码实现:
二.选择排序
本人感觉选择选择排序和冒泡排序的原理差不多,冒泡排序是两两比较然后再换位置,而选择排序是整个数组比较选出一个极值然后很据排序方式放到相应的位置。
例如数组:{3,1,9,5 ,2}利用选择进行从小到大的顺序排列。
第一次循环:首先假设最大值为啊a[0] 即max = a[0] = 3。下标:ps = 0
max和1比较,max大,max不变,ps = 0;
max在和9比较,9大,max = 9,ps = 2;
max和5比较,max大,max = 9,ps = 2;
max和2比较,max大,max = 9;ps = 2;
循环之后得到整个数组的最大值max,和下标ps,然后将最大值与数组最后一个元素互换,
a[ps] = a[a.length-1]; a[a.length-1] = max;
此时数组最后一个值就是最大值。
第二次循环:
选出除最后一个值之外的最大值,放到倒数第二的位置;
......
Java代码实现