排序大全
插入排序、氣泡排序、二叉樹排序、歸併排序及其他線形排序是穩定的
選擇排序、希爾排序、快速排序、堆排序是不穩定的
插入排序、氣泡排序、選擇排序的時間複雜性為
o(n2)
其它非線形排序的時間複雜性為
o(nlog2n)
線形排序的時間複雜性為
o(n);
歸併排序的輔助空間為
o(n),
其它排序的輔助空間為
o(1);
class
program;
array = sort(array);
foreach (var item in array)
console.readkey(); }
static
int sort(int array)
} }
return array; }
static
void swap(int array, int firstindex, int secondindex)
}class
program;
array = selectsort(array);
foreach (var item in array)
console.readkey(); }
static
int selectsort(int array)
} }
return array; }
static
void swap(int array, int firstindex, int secondindex)
}class
program;
array = quicksort(array, 0, array.length - 1);
foreach (var item in array)
console.readkey(); }
static
int quicksort(int array,int start, int end)
else
low++; }
while (mark < high)
else
high--; }
}if (mark - start > 1)
if (end - mark > 1)
return array; }
static
void swap(int array, int firstindex, int secondindex)
}class
program;
array = heapsort(array);
foreach (var item in array)
console.readkey(); }
public
static
void createheap(int array, int lastindex)
} }
public
static
int heapsort(int array)
return array; }
static
void swap(int array, int firstindex, int secondindex)
}class
program;
array = halfinsertsort(array);
foreach (var item in array)
console.readkey(); }
public
static
int halfinsertsort(int array)
int insertvalue = array[i];
for (int j = i; j > start; j--)
array[start] = insertvalue; }
return array; }
}class
program;
array = insertsort(array);
foreach (var item in array)
console.readkey(); }
static
int insertsort(int array)
} }
return array; }
static
void swap(int array, int firstindex, int secondindex)
}class
program;
array = mergesort(array, 0, array.length - 1);
foreach (var item in array)
console.readkey(); }
public
static
int mergesort(int array, int start, int end)
return array; }
public
static
void merge(int array, int start, int end)
else }
while (first <= middle)
while (second <= end)
for (int i = start; i <= end; i++)
} }class
program;
foreach (var item in shellsort(array))
console.readkey(); }
public
static
int shellsort(int array)
array[k] = insertvalue; }
continue; }
} }point = point / 2; }
return array; }
}
資料結構排序大全 C
排序大全 插入排序 氣泡排序 二叉樹排序 歸併排序及其他線形排序是穩定的 選擇排序 希爾排序 快速排序 堆排序是不穩定的 插入排序 氣泡排序 選擇排序的時間複雜性為o n2 其它非線形排序的時間複雜性為o nlog2n 線形排序的時間複雜性為o n 歸併排序的輔助空間為o n 其它排序的輔助空間為o...
資料結構 排序(C )
直接插入排序 時間複雜度 o n 2 空間複雜度 o 1 void insertsort int r,int n for j i 1 j high j 將high後面的元素全部後移一位 r j 1 r j r high 1 temp 插入元素 希爾排序 時間複雜度 o n 2 空間複雜度 o 1 v...
資料結構與演算法之排序大全
include include include define true 1 define false 0 define size 10 define key num 10 typedef unsigned char boolean static void swap void a,void b,int...