插入排序,希爾排序,歸併排序

2022-02-11 04:14:12 字數 1574 閱讀 6882

public

class

mainclass

; shellsort1(arr);

foreach (var item in

arr)

console.readkey();

}static

void shellsort1(int

arr)

arr[j + step] =temp;

}step = step / 2

; }

} static

void insertsort(int

arr)

arr[j + 1] =temp;}}

view code

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

namespace

mergesort

; mergesort(array,

newint[array.length], 0, array.length - 1

); console.writeline(

string.join(","

, array));

}//////

陣列的劃分

//////

待排序陣列

///臨時存放陣列

///序列段的開始位置,

///序列段的結束位置

static

void mergesort(int array, int temparray, int left, int

right)

}//////

陣列的兩兩合併操作

//////

待排序陣列

///臨時陣列

///第乙個區間段開始位置

///第二個區間的開始位置

///第二個區間段結束位置

static

void merge(int array, int temparray, int left, int middle, int

right)

//判斷左序列是否結束

while (left <=leftend)

temparray[tempindex++] = array[left++];

//判斷右序列是否結束

while (rightstart <=right)

temparray[tempindex++] = array[rightstart++];

//交換資料

for (int i = 0; i < templength; i++)}}

}

view code

插入排序的時間複雜度為:o(n^2)

希爾排序的時間複雜度為:平均為:o(n^3/2)

最壞: o(n^2)

歸併排序時間複雜度為: o(nlogn)

空間複雜度為:  o(n) 

排序(插入排序,希爾排序,歸併排序,快速排序)

1.插入排序 每一步將乙個待排序的元素按照其關鍵字值的大小插入到已排序序列的適當位置,知道待排序元素插入完為止。1 核心 void sort int a,int n 插入排序 a j temp 2 例題 將序列 3,1,4,1,5,9,2,6,5用插入排序排位公升序列。include void so...

氣泡排序,插入排序,堆排序,歸併排序,希爾排序

感謝姥姥提供模板 感謝姥姥 展示 include include using namespace std 氣泡排序 void bubble sort int arr,int n 插入排序 void insertionsort int arr,int n arr i tmp 希爾排序 void she...

插入排序 歸併排序

插入排序 define len 5 int a len void insertion sort void int i,j,k for j 1 j len j k a j i j 1 while i 0 a i k a i 1 a i i a i 1 k 歸併排序 int a 8 void merge...