数据结构——排序算法(下):希尔排序、归并排序、堆排序 继插入排序和快速排序之后这一篇继续讲剩余的重要排序算法。一、希尔排序publicvoidshellSort(int[]arr){for(intgaparr.length/2;gap0;gap/2){for(intigap;iarr.length;i){intji;inttemparr[j];while(j-gap0arr[j-gap]temp){arr[j]arr[j-gap];j-gap;}arr[j]temp;}}}二、归并排序publicvoidmergeSort(int[]arr,intleft,intright){if(leftright)return;intmidleft(right-left)/2;mergeSort(arr,left,mid);mergeSort(arr,mid1,right);merge(arr,left,mid,right);}三、堆排序publicvoidheapSort(int[]arr){for(intiarr.length/2-1;i0;i--)heapify(arr,i,arr.length);for(intiarr.length-1;i0;i--){swap(arr,0,i);heapify(arr,0,i);}}四、排序算法对比算法平均时间最坏空间稳定希尔O(n^1.3)O(n²)O(1)❌归并O(n log n)O(n log n)O(n)✅堆排O(n log n)O(n log n)O(1)❌ 觉得有用的话点赞 关注【张老师技术栈】吧