插入排序
插入排序:选择一个位置,把他和左边的位置比较……每次排序都是将本次排序的最小值放最左边
public static void main(String [] args){
int [] arr = {4,99,56,2,23,12,1};
int temp = 0;
//数组是从0开始计下标,这里1取的第二个下标的值
for(int i = 1;i < arr.length;i ++){
//从我们取的位置开始往左(往前)找,
for(int j = i;j > 0;j --){
//只要左边的数我们取的这个数大,那就一直把这些数往右移,
//相当于这时每次都把取到的数往前边插队一个位置,
if(arr[j] < arr[j - 1]){
//就把取的数放在这个数的后面,
temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
}
//当我们找到小于的数时,就停止了本次if的查找,返回到循环语句接着取下一个位置
}
}
for(int k : arr){
System.out.print(k + " ");
}
}
冒泡排序
冒泡排序就是从第一个数开始,一直和右边紧挨的数进行比较,然后较大的数始终在右边。
public static void main(String [] args){
int [] arr = {4,99,56,2,23,12,1}; //7个数
int temp = 0;
for(int i = 0; i < arr.length-1;i ++){ //外圈循环6次,
for(int j = 0;i < arr.length-1-i;j ++){ //内圈循环用来和右边紧挨的数进行比较
if(arr[j] < arr[j + 1]){
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for(int a : arr){
System.out.print(a + " ");
}
}
选择排序
public static void main(String [] args){
int [] arr = {4,99,56,2,23,12,1};
int min = 0,temp = 0;
for(int i = 0;i < arr.length-1;i ++){
min = i;
for(int j = min + 1;j < arr.length;j ++){
if(arr[j] < arr[min]){
min = j;
}
}
temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
for(int a : arr){
System.out.print(a + " ");
}
}