发布时间: 2012-06-29 15:48:46 作者: rapoo
各类排序C++实现(冒泡,选择,插入,快排,归并,堆排)
没有加什么模板之类的,全用的int型,下标有的从0开始有的从1开始
1.插入
#include <iostream>using namespace std;int n;int a[105];//下标从1开始void HeapAdjust(int A[], int a, int z) { int i, j; for(i = a, j = 2 * i; j <= z; i = j, j = 2 * i) { //i为父,j为子 if(j < z && A[j + 1] > A[j]) j++; //大顶堆,沿大孩子方向下行 if(A[i] < A[j]) swap(A[i], A[j]); else break; }}void HeapSort(int A[], int n){ int i; for(i = n / 2; i >= 1; i--) //从倒数第一个非叶子结点,自下而上堆化 HeapAdjust(A, i, n); for(i = n; i > 1; i--) { //交换A[1]与最后元素A[i](i=n, ..., 1), 再堆化 swap(A[1], A[i]); HeapAdjust(A, 1, i - 1); }}int main(){ int i; cin >> n; for(i = 1; i <= n; i++) cin >> a[i]; HeapSort(a, n); for(i = 1; i <= n; i++) cout << a[i] << " "; cout << endl; return 0;}
昨天领了结婚证,该怎么解决
windows+codeblocks+gtk+ 中文乱码怎么
关于运算符重载,该怎么处理
CSDN乱码留念,该如何解决
动态分配的二维数组以矩阵方式输出
如果把一段字符串输出到光标处?解决方
list中iterator的 end( )的实现,该如何
C++字符串截取的有关问题
C/C++
居然只能输出ascii码的前128位