/*簡單選擇排序*/
void select_sort(sqlist l)
//把無序區最小的挑出來
} if (i!=j)
}}//直接插入排序
void zhijie(sqlist l)
l->r[j+dk]=l->r[0]; //插入到正確位置
r->move ++;}}
}void shellsort(sqlist l,int dlta,int t) }}
//快速排序法
int partition(sqlist *l,int low,int high,recode *r)
l->r[low]=l->r[high]; //將比樞軸記錄小的記錄移到低端
while(lowr[low].key <=pivotkey)
l->r[high]=l->r[low]; //將比樞軸記錄大的記錄移到高階
r->move =r->move+2;
}l->r [low]=l->r [0]; //樞軸記錄到位
r->move ++;
return low; //返回樞軸位置
}void qsort(sqlist *l,int low,int high,recode *r)
}void quicksort(sqlist l)
/*堆排序*/
//堆調整演算法
void heapadjust (heaptype &l, int s, int m)
l.r[s] = rc; // 將調整前的堆頂記錄插入到 s (注意插入的位置為s j=2*s)
r.move++;
} // heapadjust
void heapsort ( heaptype &l )
for ( i=l.length; i>1; --i )
// 將堆頂記錄和當前未經排序子串行
// h.r[1..i]中最後乙個記錄相互交換
heapadjust(l, 1, i-1); // 對 l.r[1] 進行篩選
} // heapsort
void binsertsort(sqlist &l)
l.r[high+1] = l.r[0]; // 插入
}} // binsertsort
ACM寒假培訓 各種排序
基本思想 每次遍歷陣列,相鄰的兩個元素比較,公升序時 如果後面小於前面那麼就交換這兩個數,每次迴圈結束時使得乙個最大數冒泡至陣列尾部。最終實現全部排序。時間複雜度 o n 2 空間複雜度 o 1 優化 由於氣泡排序在進行排序時,遍歷一次的同時可以判斷該陣列是否有序,因而在排序時可以判斷如果當前陣列有...
ACM 各種模板整理
靜態仙人掌 圓方樹 includeusing namespace std define ll long long define pr std pair define mk a,b std make pair a,b const int maxm 2e5 5 const int maxn 1e5 5 ...
ACM各種題集及各種總結大全
acm題集以及各種總結大全!雖然退役了,但是整理一下,供小弟小妹們以後切題方便一些,但由於近來考試太多,顧退役總結延遲一段時間再寫!先寫一下各種分類和題集,歡迎各位大牛路過指正。杭州電子科技大學 hdu acm題目 連線 關於acm的幫助 連線 北京大學 poj 題目 連線 浙江大學 zoj 題目 ...