資料結構排序大全 C

2021-05-22 15:58:23 字數 3068 閱讀 4424

排序大全

插入排序、氣泡排序、二叉樹排序、歸併排序及其他線形排序是穩定的

選擇排序、希爾排序、快速排序、堆排序是不穩定的

插入排序、氣泡排序、選擇排序的時間複雜性為

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...