简单实现插入排序(脑袋不灵光看点啥都得记下来)
比较好的地方
1.在for()里面添加判断条件 减少里面的if语句 如果按照我以前的写法会多出好几句
2.Arrays.toString(arr);得到数组里面的内容
public class Sort {
private int[] arr = {13,12,9,77,52,10,9,55,41,41};
//使用插入排序的方法升序排序
public void ascSort(){
for(int j = 1; j<arr.length; j++){
int key = arr[j];
//在循环条件中加入一些内容
//这样的写法可以简化代码中有if的需求
//直接在for循环中将不满足条件的去掉
for(int i = j-1; i>=0 && arr[i]>key; i--){
//如果j的前一个数大于j则将这个数后移
arr[i+1] = arr[i];
arr[i] = key;
}
}
for(int i : arr){
System.out.println(i);
}
}
//使用插入排序的方法降序排序
public void descSort(){
for(int j = 1; j<arr.length; j++){
int key = arr[j];
for(int i = j-1; i>=0 && arr[i] < key;i--) {
arr[i+1] = arr[i];
arr[i] = key;
}
}
for(int i : arr){
System.out.println(i);
}
}
public static void main(String[] args) {
Sort s = new Sort();
s.ascSort();
//s.descSort();
//输入数组的方法
System.out.println(Arrays.toString(s.arr));
}
}