Mam kolejny problem ….a mianowicie mam taki program który sortuje przez kopcowanie:
#include <iostream.h>
#include <algorithm>
#include <iomanip>
using namespace std;
main()
{
const int N = 10; // liczebność zbioru
int d[N + 1],i,j,k,m,x;
// Wypełniamy tablicę liczbami
for(i = 1; i <= N; i++)
{
d = i; cout << setw(4) << d;
}
cout << endl;
// Budujemy kopiec
for(i = 2; i <= N; i++)
{
j = i; k = j / 2;
x = d;
while((k > 0) && (d[k] < x))
{
d[j] = d[k];
j = k; k = j / 2;
}
d[j] = x;
}
// Rozbieramy kopiec
for(i = N; i > 1; i--)
{
swap(d[1], d);
j = 1; k = 2;
while(k < i)
{
if((k + 1 < i) && (d[k + 1] > d[k]))
m = k + 1;
else
m = k;
if(d[m] <= d[j]) break;
swap(d[j], d[m]);
j = m; k = j + j;
}
}
// Wyświetlamy wynik sortowania
cout << "Po sortowaniu:nn";
for(i = 1; i <= N; i++) cout << setw(4) << d;
cout << endl;
system("PAUSE");
return 0;
}
Wszystko dziala niby dobrze ale…..jak zrobic aby po wpisaniu do tablicy na pozycje 0 jakiejs liczby aby program tez ja sortował ?? bo jak na razie to ten program sortuje liczby od indeksu 1 w gore. Mam nadzieje ze zrozumieliście mnie ….
licze na wasza pomoc ;]
#include <iostream.h>
#include <algorithm>
#include <iomanip>
using namespace std;
main()
{
const int N = 10; // liczebność zbioru
int d[N + 1],i,j,k,m,x;
// Wypełniamy tablicę liczbami
for(i = 1; i <= N; i++)
{
d = i; cout << setw(4) << d;
}
cout << endl;
// Budujemy kopiec
for(i = 2; i <= N; i++)
{
j = i; k = j / 2;
x = d;
while((k > 0) && (d[k] < x))
{
d[j] = d[k];
j = k; k = j / 2;
}
d[j] = x;
}
// Rozbieramy kopiec
for(i = N; i > 1; i--)
{
swap(d[1], d);
j = 1; k = 2;
while(k < i)
{
if((k + 1 < i) && (d[k + 1] > d[k]))
m = k + 1;
else
m = k;
if(d[m] <= d[j]) break;
swap(d[j], d[m]);
j = m; k = j + j;
}
}
// Wyświetlamy wynik sortowania
cout << "Po sortowaniu:nn";
for(i = 1; i <= N; i++) cout << setw(4) << d;
cout << endl;
system("PAUSE");
return 0;
}
Wszystko dziala niby dobrze ale…..jak zrobic aby po wpisaniu do tablicy na pozycje 0 jakiejs liczby aby program tez ja sortował ?? bo jak na razie to ten program sortuje liczby od indeksu 1 w gore. Mam nadzieje ze zrozumieliście mnie ….
Kod: