#include
#include
#include
using
namespace std;
#define maxsize 20
//順序表最大長度
typedef
struct
redtype;
//記錄型別
typedef
struct
sqlist;
//順序表型別
//對順序表l中的記錄進行直接插入排序
void
insertsort
(sqlist &l)
l.r[j+1]
=l.r [0]
;}}}
//對順序表l中的記錄進行折半插入排序
void
binsertsort
(sqlist &l)
for(j=i-
1;j>=high+
1;j--
) l.r[high+1]
=l.r[0]
;}}}
//對順序表l中的記錄進行一趟增量為dk的希爾排序
void
shellinsert
(sqlist &l,
int dk)
l.r[j+dk]
=l.r[0]
;}}}
//對順序表l中的記錄按增量序列(儲存在陣列dt中)進行t趟希爾排序
void
shellsort
(sqlist &l,
int dt,
int t)
}//對順序表l中的記錄進行氣泡排序
void
bubblesort
(sqlist &l)}}
}//對順序表l中的子表l.r[low...high]進行一次劃分,並返回樞軸位置
intpartition
(sqlist &l,
int low,
int high)
l.r[low]
=l.r[0]
;return low;
//**補充完整後,刪除該行
}//對順序表l中的子串行l.r[low...high]進行快速排序
void
qsort
(sqlist &l,
int low,
int high)
}//對順序表l中的記錄進行快速排序
void
quicksort
(sqlist &l)
//對順序表l中的記錄進行簡單選擇排序
void
selectsort
(sqlist &l)}}
//堆的調整,假設l.r[s+1...m]已經是乙個大根堆,該操作將l.r[s...m]調整為以l.r[s]為根的大根堆
void
heapadjust
(sqlist &l,
int s,
int m)
l.r[s]
=rc;
}//把順序表l中的無序記錄序列建成大根堆
void
creatheap
(sqlist &l)
//對順序表l中的記錄進行堆排序
void
heapsort
(sqlist &l)
}//將有序表r[low...mid]和r[mid+1...high]歸併為有序表t[low...high]
void
merge
(redtype r[
],redtype t,
int low,
int mid,
int high)
while
(i]=r[i++];
while
(j]=r[j++];
}//將r[low...high]中的記錄歸併排序後放入t[low...high]中
void
msort
(redtype r[
],redtype t,
int low,
int high)
//對順序表l中的記錄進行歸併排序
void
mergesort
(sqlist &l)
//建立順序表:向順序表l中新增10個記錄,記錄的關鍵字為1-100範圍內的隨機整數
void
createlist
(sqlist &l)
l.length =10;
}//輸出順序表l中各記錄關鍵字的值,中間用空格分隔
void
printlist
(sqlist l)
cout<}//程式選單
void
showmenu()
intmain()
;//dt中存放的是希爾排序時使用的三個增量
createlist
(l);
//建立長度為10的順序表l,表中記錄的關鍵字為1-100範圍內的隨機整數
showmenu()
; cin>>n;
//輸出選擇的排序方法序號
while
(n!=0)
//迴圈顯示選單,按0結束程式
switch
(n)//根據選擇的序號呼叫不同的排序方法
createlist
(l);
//每次排序後,重置l中的10個記錄
showmenu()
; cin>>n;
system
("cls");
//清屏
}}
順序表奇偶排序 C語言
題目 建立乙個順序表,已知順序表l中的元素為int,請將l中的奇數元素排在前面,偶數元素排在後面。時間複雜度o n 空間複雜度o 1 1 2 include include define maxsize 100 define elemtype int define true 1 define err...
C 順序表的實現
順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。ifndef list h define list h template class list endif ifndef seqlist h define seqlist h include l...
順序表的合併(C )
把兩個無序表合成乙個有序表 例如 把la和lb合成lc。la 1,5,2,3,9 lb 6,8,4,7 lc 1,2,3,4,5,6,7,8,91.設兩個無序表為la和lb,因為順序表是無序的,而且順序表難以直接排序,所以我先把la和lb弄成陣列a和陣列b,因為陣列排序十分容易,可以直接採用內建的a...