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
array
24*
@param
left 第乙個索引
25*
@param
right 最後乙個索引
26*/
27public
void mergesort(int array,int left,int
right)34}
3536
public
void merge(int array,int left,int middle,int
right)
42for(int i=0;i)
45int l=0,r=0,k=left;
46for(;k<=right&;&;l)else54}
55while(l60
while(r6667
6869
/**70
* 堆排序
71* 原地排序且o(nlogn)
72*
@param
array
73*/
74public
void heapsort(int
array)82}
83/**
84* 構建最大堆
85*
@param
array
86*/
87public
void buildheap(int
array)91}
9293
/**94
* 95
* @param
array 陣列
96*
@param
index 陣列中的索引
97*
@param
length 樹中元素個數
98*/
99public
void heapify(int array,int index,int
length)
109if((2*present+2)largest)
113if(largest_index!=present)else
120}
121 array[present]=value;
122}
123124
125126
/**127
* 最壞時間o(n2)----在陣列已經排好序時發生
128* o(nlogn)
129*
@param
array
130*
@param
p131
* @param
r132
*/133
public
void quicksort(int array,int p,int
r)139
}140
141public
int partition(int array,int p,int
r)151
}152 exchange(array,i+1,r);
153return i+1;
154}
155156
public
void exchange(int array,int p,int
q)
插入排序 合併排序 堆排序和快速排序
插入排序 時間複雜度o n2 param array原地排序演算法 public void insertsort int array array position present 合併排序 o nlogn param array param left 第乙個索引 param right 最後乙個索引...
插入排序,快速排序,堆排序,歸併排序
插入排序 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...