插入排序 合併排序 堆排序和快速排序

2022-07-26 15:39:14 字數 1129 閱讀 1626

/**

* 插入排序

* 時間複雜度o(n2)

* @param array原地排序演算法

*/public void insertsort(int array)

array[position] = present;}}

* 合併排序

* o(nlogn)

* @param array

* @param left 第乙個索引

* @param right 最後乙個索引

*/public void mergesort(int array,int left,int right)else

}while(l/**

* 堆排序

* 原地排序且o(nlogn)

* @param array

*/public void heapsort(int array)

}/**

* 構建最大堆

* @param array

*/public void buildheap(int array)

}/**

* * @param array 陣列

* @param index 陣列中的索引

* @param length 樹中元素個數

*/public void heapify(int array,int index,int length)

if((2*present+2)largest)

if(largest_index!=present)else

}array[present]=value;

}/**

* 最壞時間o(n2)----在陣列已經排好序時發生

* o(nlogn)

* @param array

* @param p

* @param r

*/public void quicksort(int array,int p,int r)

}public int partition(int array,int p,int r)

}exchange(array,i+1,r);

return i+1;

}public void exchange(int array,int p,int q)

插入排序 合併排序 堆排序和快速排序

1 插入排序 2 時間複雜度o n2 3 param array原地排序演算法 4 5public void insertsort int array 13 array position present 14 15 1617 1819 20 21 合併排序 22 o nlogn 23 param a...

插入排序,快速排序,堆排序,歸併排序

插入排序 void insert sort int arry,int length 快速排序 int quick adj int arry,int low,int high else if arry high low 2 arry low arry high low 2 arry high arry...

插入排序 歸併排序 堆排序

include void insertion sort int arr,int len arr j 1 temp int main int n 5 insertion sort a,n for int i 0 iprintf d a i includevoid merge sort recursiv...