1、选择排序
在每一次的遍历过程中,假定第一个索引处的元素是最小值,和其他索引处的值依次进行比较,如果当前索引处的值大于其他某个索引处的值,则假定其他某个索引处的值是最小值,最后找到最小值的索引。然后交换第一个索引处和最小值所在的索引处的值。
代码举例:
int[] arr = {23,45,12,8,3,2,55,34,87,21};
for(int i = 0;i <arr.length-1;i++){
int minIndex = i;
for(int j = i; j < arr.length;j++){
if(arr[minIndex] > arr[j]){
minIndex = j;
}
}
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
//遍历排序后的数组
for(int i = 0;i <arr.length;i++){
System.out.print(arr[i] + " ");
}
2、直接插入排序
直接插入排序的工作方式和我们在斗地主时整理牌的时候一样。
代码举例:
int[] arr = {23,45,12,8,3,2,55,34,87,21};
for(int i =1;i <arr.length;i++){
for(int j = i;j>0;j--){
if(arr[j-1] > arr[j]){
int temp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = temp;
}else{
break;
}
}
}
//遍历排序后的数组
for(int i = 0;i <arr.length;i++){
System.out.print(arr[i] + " ");
}