(1)NC78反转链表
(2)NC140 排序
两种常用排序
用快排实现
public int[] MySort (int[] arr) {
fastSort(arr,0,arr.length-1);
return arr;
}
private void fastSort(int[] arr,int l,int r){
if(l>=r)
return;
int num = arr[r];
int sl = l,sr=r;
while(lnum)r--;
//在填入前一定要进行判断
if(l
用归并法实现
public class Solution {
public int[] MySort (int[] arr) {
// write code here
mergeSort(arr,0,arr.length-1);
return arr;
}
private void mergeSort(int[] arr , int l , int r){
if(l>=r)
return;
int mid = (l+r)>>1;
//分两边继续递归
mergeSort(arr,l,mid);
mergeSort(arr,mid+1,r);
//两边都递归结束,才合并此层
merge(arr,l,mid,r);
}
private void merge(int[] arr,int l,int mid,int r){
int[] t = new int[r-l+1];
int index = 0;
int h1 = l, h2 = mid+1;
while(h1<=mid&&h2<=r){
if(arr[h1]
堆排序
优先队列



