(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 內排序和外排序 按照排序過程中涉及的...