背景:发现很多学过基础班以后的同学过了一段时间,只有40%左右的同学记得几种排序算法,本人也不例外,原因是这几种排序算法的思想虽然相异,但是写法类似,非常容易让人混淆.
本人复习总结出:用简短三句话描述三种排序算法的思想.
插入排序:从容器(数组或集合)中的第二个对象开始取出与前面的元素依次倒叙做比较.
选择排序:从容器(数组或集合)中的第一个对象开始取出与后面的元素做比较,过滤出第一个元素为最小个.
冒泡排序:从容器(数组或集合)中的第一个对象开始到最后一个元素,相邻的元素两两依次比较,结果最大值推到最后.
插入排序实现:
//插入排序 break.
public static int[] insertSort(int[] arr){
for (int x = 1; x < arr.length-1; x++) {
for(int y=x;0<y;y--){
if (arr[y]<arr[y-1]) {
int temp = arr[y];
arr[y]=arr[y-1];
arr[y-1]=temp;
}else{
break;
}
}
}
return arr;
}
//选择排序(将最小的拿出来放前面).
public static int[] chooseSort(int[] arr){
for (int x = 0; x < arr.length-1; x++) {
for (int y = x+1; y < arr.length; y++) {
if (arr[x]>arr[y]) {
int temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
return arr;
}
//冒泡排序.
public static int[] pubbeSort(int[] arr){
for (int x = 0; x < arr.length-1; x++) {
for (int y = 0; y < arr.length-1-x; y++) {
if (arr[y]>arr[y+1]) {
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
return arr;
}
最后总结机记忆方法:插入y=x=1;选择y=x+1;y=x=0;
规律你懂的.
|
|