最小堆查询法
来源:互联网 发布:出让股份分配怎么算法 编辑:程序博客网 时间:2024/05/16 10:34
#include "stdafx.h"
#include <iostream>
using namespace std;
void SortSatck(int b[],int n);
//构造最小的
void MakeStack(int a[],int n,int m)
{
int i,j,temp;
//将数值加入到最后的位置上
a[n] = m;
i = n;
j = (n-1)/2;
while(j >= 0&&i!=0)
{
if(a[i] < a[j])
{
temp = a[j];
a[j] = a[i];
a[i] = temp;
i = j;
j = (i-1)/2;
}
else
{
break;
}
}
}
void sort(int b[],int n)
{
if(n == 0)
return;
int temp = b[0];
b[0] = b[n];
b[n] = temp;
SortSatck(b,n-1);
for(int i=0;i < 10;i++)
{
cout<<b[i]<<" ";
}
cout<<endl;
sort(b,n-1);
}
void SortSatck(int b[],int n)
{
if(n == 0)
return;
int i,j,temp;
i = 0;
j = i*2+1;
while(j<n && j> 0)
{
if(b[j] > b[j+1])
j = j+1;
if(b[i] > b[j])
{
temp = b[j];
b[j] = b[i];
b[i] = temp;
i = j;
j = i*2+1;
}
else
{
break;
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int A[10] = {98,18,69,34,78,27,47,57,52,36};
int b[10];
for(int i = 0;i < 10;i++)
{
MakeStack(b,i,A[i]);
}
for(int i=0;i < 10;i++)
{
cout<<b[i]<<" ";
}
cout<<endl;
sort(b,9);
for(int i=0;i < 10;i++)
{
cout<<b[i]<<" ";
}
cout<<endl;
system("pause");
return 0;
}
#include <iostream>
using namespace std;
void SortSatck(int b[],int n);
//构造最小的
void MakeStack(int a[],int n,int m)
{
int i,j,temp;
//将数值加入到最后的位置上
a[n] = m;
i = n;
j = (n-1)/2;
while(j >= 0&&i!=0)
{
if(a[i] < a[j])
{
temp = a[j];
a[j] = a[i];
a[i] = temp;
i = j;
j = (i-1)/2;
}
else
{
break;
}
}
}
void sort(int b[],int n)
{
if(n == 0)
return;
int temp = b[0];
b[0] = b[n];
b[n] = temp;
SortSatck(b,n-1);
for(int i=0;i < 10;i++)
{
cout<<b[i]<<" ";
}
cout<<endl;
sort(b,n-1);
}
void SortSatck(int b[],int n)
{
if(n == 0)
return;
int i,j,temp;
i = 0;
j = i*2+1;
while(j<n && j> 0)
{
if(b[j] > b[j+1])
j = j+1;
if(b[i] > b[j])
{
temp = b[j];
b[j] = b[i];
b[i] = temp;
i = j;
j = i*2+1;
}
else
{
break;
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int A[10] = {98,18,69,34,78,27,47,57,52,36};
int b[10];
for(int i = 0;i < 10;i++)
{
MakeStack(b,i,A[i]);
}
for(int i=0;i < 10;i++)
{
cout<<b[i]<<" ";
}
cout<<endl;
sort(b,9);
for(int i=0;i < 10;i++)
{
cout<<b[i]<<" ";
}
cout<<endl;
system("pause");
return 0;
}
- 最小堆查询法
- 最小堆排序法
- 最小堆
- 最小堆
- 最小堆
- 最小堆
- 最小堆
- 最小堆
- 最小堆
- 最小堆
- 最小堆
- 最小堆
- 最小堆
- 最小堆
- 最小堆
- 最大堆/最小堆
- 最小堆。最大堆。
- 最大堆/最小堆
- PTmalloc hacking
- 更改Ubuntu 的登录背景图片
- Linux 下查看某一个程序所使用的内存
- 微博版中文计算器!
- 无BOM的条件下C语言判断一个文件是否为UTF-8编码代码(windows,linux通用)
- 最小堆查询法
- 类的继承
- 使用C#格式化字符串 ~
- Android 使用到的名词解析
- strcpy与memcpy以及strncpy
- Linux下的makefile编写详解
- 【其他技术】牛人1kb写的动画
- 痛风的饮食分类
- C#编程的好习惯