七大排序演算法 插入排序及其優化

2021-09-25 14:41:48 字數 780 閱讀 9956

思路:

初步**:

public static void insertsort(int arr)else 

}arr[j + 1] = tmp; //將tmp放到 小於或等於tmp這個元素的後乙個位置}}

}public static void swap(int arr,int i,int j)

複雜度分析:

優化:二分查詢該元素要插入的位置

分析: left = 0;right = 3,mid = (right + left)/2 = 1;temp = 1

temp >= arr[mid] 在mid的右邊查詢 left = mid + 1 = 2;right = 3,mid = (right + left)/2 = 2;temp = 1

temp < arr[mid] 在左邊查詢 left = 2;right = mid - 1 = 1 right > left 跳出while迴圈

所以temp 插入位置為temp + 1

**:

public static void insertsort(int arr)else 

}for(j = i - 1;j > right;j--)

arr[j + 1] = tmp; //將tmp放到 小於或等於tmp這個元素的後乙個位置}}

}

七大排序演算法之插入排序

常見的排序演算法有 插入排序,希爾排序,氣泡排序,選擇排序,快速排序,歸併排序,堆排序。此篇主要講述插入排序,演算法步驟 1 將待排序序列第乙個元素看做是乙個有序序列,把第二個元素到最後乙個元素當成未排序系列 2 從頭到尾依次掃瞄未排序序列,將掃瞄到的每乙個元素插入到有序序列的適當位置 如果待插入的...

七大排序演算法 選擇排序及其優化

思路 初步 public class myselectionsort selectionsort arr system.out.println arrays.tostring arr public static void selectionsort int arr swap arr,i,min pu...

C C 七大排序演算法 之 「插入排序」

排序 即將一組混亂的資料按從小到大或者從大到小的順序進行有序的排列出來。插入排序演算法 思路解答 它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,通常採用 in place 排序 即只需用到 o 1 的額外空間的排序 因而在從後向前掃...