直接插入排序
排序原理
算法思路:直接插入法是一种最简单的排序方法,它的基本操作是将一个记录插入到一个长度为m的有序表中,使之仍然保持有序。
package sort;
import java.util.Arrays;
//比较多少轮,每轮比较几次
public class InsertSort {
public static void main(String[] args){
int[] arr=new int[] {6,7,2,-9,4,1,0,5,3};
inserSort1(arr);
System.out.println(Arrays.toString(arr));
}
//插入排序:从索引1处开始,将后面的元素插入到之前的有序列表中使之仍然有序
public static void inserSort1(int[] arr){
//外层循环定义轮次
for(int i =1;i< arr.length;i++){
int j=i;
//内层循环进行比较插入
while(j>0 && arr[j] < arr[j-1]){
swap(arr,j,j-1);
j--;
}
}
}
public static void inserSort2(int[] arr){
//外层循环定义轮次
for(int i =1;i< arr.length;i++){
for(int j =i;j>0;j--){
if(arr[j] < arr[j-1]){
swap(arr,j,j-1);
}
}
}
}
//交换数组元素
public static void swap(int arr[],int a,int b){
arr[a] = arr[a] + arr[b];
arr[b] = arr[a] - arr[b]; //把arr[a]赋值给arr[b]
arr[a] = arr[a] - arr[b]; //剩下的就是arr[a]
}
}