C/C++实践笔记 025堆排序、CGI网页交互
1.堆与堆排序
堆在数据结构里是二叉树
堆排序取出一个最大值、最小值最快
#include<stdio.h> #include<stdlib.h> void show(int *p, int n) { for (int i = 0; i < n; i++) { printf("%4d", p[i]); } printf("\n"); } void findmax(int *arr,int size) { for (int j = size - 1; j>0; j--)//从尾循环到头部,自下而上登顶 { int parent = j / 2; int child = j; //记录当前下标 if (j < size - 1 && arr[j] < arr[j + 1])//先取出左右最大值 { child++; } if (arr[child] > arr[parent]) //最大值登顶 { int temp = arr[child]; arr[child] = arr[parent]; arr[parent] = temp; } } } void heapsort(int *arr, int size) { for (int j = size; j > 0; j--) { findmax(arr, j); int temp = arr[0]; arr[0] = arr[j - 1]; arr[j - 1] = temp; } } void main() { int a[10] = { 10,13,20,12,30,14,50,19,60,29 }; //show(a, 10); //findmax(a, 10); //show(a, 10); heapsort(a, 10); show(a, 10); system("pause"); }
2.CGI网页交互
printf("Content-type:text/html \n\n"); gets(str);

浙公网安备 33010602011771号