冒泡排序
冒泡排序:
从第一个元素开始比较相邻的元素若前者大于后者则对换数值,最终将最大的元素max移动到最右侧
原数组 {12,3,1,5,33,44,22};
首次比较后:{3,1,5,12,33,22,44}
原数组除去最后一项max后的剩余数组依照前文方法比较并对换,将第二大的元素移动到倒数第二的位置
二次比较后:{3,1,5,12,22,33,44}
以此类推实现数据集的从小到大排序
代码实现
public static void bubleSort() {
int [] arr = {12,3,1,5,33,44,22};
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr.length-i-1;j++) {
if(arr[j]>arr[j+1]) {
int temp = arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
插入排序
插入排序:
从第二个元素开始与前侧元素倒序比较,在其左侧找到比其大的索引最小的元素的索引,将此元素移动到该位置,其余元素顺序后移
public static void insertSort() {
int [] arr = {12,3,1,5,33,44,22};
for(int i=1;i<arr.length;i++) {
int insertIndex = -1;
for(int j=i;j>=0;j--) {
if(arr[i]<arr[j]) {
insertIndex = j;
}
}
if(insertIndex!=-1) {
int temp = arr[i];
for(int k=i;k>=insertIndex;k--) {
if(k==insertIndex) {
arr[k]=temp;
}else {
arr[k] = arr[k-1];
}
}
}
}
System.out.println(Arrays.toString(arr));
}
2117

被折叠的 条评论
为什么被折叠?



