有没有做网页的兼职网站,开网站建设公司赚钱吗,做相册什么网站好,织梦电影网站免费模板属性 当插入第i(i1)个元素时#xff0c;前面的array[0],array[1],…,array[i-1]已经排好序#xff0c;此时用array[i]的排序码与array[i1],array[i-2],…的排序码顺序进行比较#xff0c;找到插入位置即将array[i]插入#xff0c;原来位置上的元素顺序后移 直接插入排序…属性 当插入第i(i1)个元素时前面的array[0],array[1],…,array[i-1]已经排好序此时用array[i]的排序码与array[i1],array[i-2],…的排序码顺序进行比较找到插入位置即将array[i]插入原来位置上的元素顺序后移 直接插入排序的特性总结 1. 元素集合越接近有序直接插入排序算法的时间效率越高 2. 时间复杂度O(N^2) 3. 空间复杂度O(1)它是一种稳定的排序算法 4. 稳定性稳定
代码及其注释 public class InsertSort {// 插入排序public static void insertSort(int[]arr){//首先比较第一个元素和第二个元素之间的大小关系所以i从1开始for(int i1;iarr.length;i){//将要进行比较的数放到一个临时变量中此时就相当于i位置现在是空的int tmparr[i];//遍历i前面的数据与temp中的数据进行比较int ji-1;for(;j0;j--){//要是i前面的数据比i的数据大就说明该数据应该在i数据之前就将该数据向前移if(arr[j]tmp){arr[j1]arr[j];}//i前面的数据比i的数据小了找到了合适的位置就退出循环并将i的数据放到当前遍历到的j数据之前else {break;}}//这里有特殊情况当i前面的数据都比i大时j的取值会一直取到-1退出循环此时就需要将i的值放到0的位置arr[j1]tmp;}}
}