标签:
以后,我要把自己平时写的常用的放在这里。如有改进,请大家指出。
#include "stdafx.h" #include <iostream> using namespace std; int *p; int length;//保存需要排序的元素个数 void Init() { //初始化。 cout << "输入需要排序的元素个数" << endl; cin >> length; p = new int[length]; cout << "依次输入需要排序的元素" << endl; for (int i = 0; i < length; i++) { cin >> p[i]; } } void Show() { //依次输出数组元素。 for (int i = 0; i < length; i++) { cout << p[i] <<" "<< endl; } } void shift( int i,int length) { int temp = p[i]; int j = 2 * i + 1; while (j<length) { if (j<length - 1 && p[j]<p[j + 1]) j++; if (temp<p[j]) { p[i] = p[j]; i = j; j = 2 * i + 1; } else break; } p[i] = temp; } void HeapSort() { int i, temp; for (i = length / 2 - 1; i >= 0; i--) shift(i,length); for (i = length - 1; i>0; i--) { temp = p[i]; p[i] = p[0]; p[0] = temp; shift(0,i); } } int main() { Init(); HeapSort(); cout << "*******************************" << endl; Show(); getchar(); return 0; }
运行环境VS2015.
标签:
原文地址:http://www.cnblogs.com/520wy/p/5598230.html