961資料結構總結 排序

2021-10-10 04:45:43 字數 1955 閱讀 5697

(1)直接插入排序

void insertsort (elemtype a,

int n)

}

(2)折半插入排序

void

insertsort

(elemtype a,

int n)

for(j=i-

1;j>=high+1;

--j)

a[j+1]

=a[j]

;//統一後移元素,空出插入位置

a[high+1]

=a[0];

//插入操作

}}

(3)希爾排序

void

shellsort

(elemtype a,

int n)

//if

}

(1)氣泡排序

void

bubblesort

(elemtype a,

int n)

if(flag==false)

return

;//本趟遍歷後沒有發生交換,說明表已經有序

}

(2)快速排序

void

quicksort

(elemtype a,

int low,

int high)

}int

partition

(elemtype a,

int low,

int high)

a[low]

=pivot;

//樞軸元素存放到最終位置

return low;

//返回樞紐的最終位置

}

(1)簡單選擇排序

void

selectsort

(elemiype a,

int n)

}

(2)堆排序

void

buildmaxheap

(elemtype a,

int len)

void

headadjust

(elemtype a,

int k,

int len)

} a[k]

=a[0

]; //被篩選結點的值放入最終位置

}void

heapsort

(elemtype a,

int len)

}

elemtype *b=

(elemtype *

)malloc

((n+1)

*sizeof

(elemtype)

); //輔助陣列b

void

merge

(elemtype a,

int low,

int mid,

int high)

//for

while

(i<=mid) a[k++

]=b[i++

]; //若第乙個表未檢測完,複製

while

(j<=high) a[k++

]=b[j++

]; //若第二個表未檢測完,複製

}void

mergesort

(elemtype a,

int low,

int high)(if

(low}

961資料結構總結 樹

1 鏈式儲存結構 typedef struct bitnodebitnode,bitree 2 遍歷 1 先序遍歷 遞迴 void preorder1 bitree t 非遞迴 void preorder2 bitree t else 2 中序遍歷 遞迴 void inorder1 bitree t...

961資料結構總結 順序表

initlist l 初始化表,構件乙個空表 length l 求表長,返回表長度,即元素個數 locateelem l,e 按值查詢元素,找值為e的元素 getelem l,i 按位查詢,找第i個位置的元素 listinsert l,i,e 插入,第i個位置插入e listdelete l,i,e...

資料結構排序 總結

一 排序的基本概念 假設含有n個記錄的序列為,其相應的關鍵字為,需確定1,2,3 n的一種排列p1,p2,pn使其相應的關鍵字滿足kp1 kp2 kp3 kpn非遞減 或非遞增 關係,及時的序列稱為乙個按關鍵字有序的序列,這樣的操作就稱為排序。二 排序的分類 1 內排序和外排序 按照排序過程中涉及的...