Pagini recente » Cod sursa (job #2302933) | Cod sursa (job #1137294) | Cod sursa (job #1137439) | Cod sursa (job #2202640) | Cod sursa (job #3031414)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
//SHELLSORT
void shellsort(int v[], int n,int h)
{
int i, j, k, temporar;
for (i = n / h; i > 0; i /= h)
{
for (j = i; j < n; j++)
{
temporar = v[j];
k;
for (k = j; k >= i && v[k - i] > temporar; k = k - i)
v[k] = v[k - i];
v[k] = temporar;
}
}
}
int main()
{
int v[500000],n;
for(int i=0;i<n;i++)
f>>v[i]
shellsort(data, n);
for (int i = 0; i < n; i++)
gg << data[i] << " ";
return 0;
}
/* //MERGESORT
void merge(int v[], int st, int dr, int mij)
{
int k =0, i = st, j = mij+1, temp[101] = { 0 };
while (i <= mij && j <= dr)
{
if (v[i] < v[j])
{
temp[k] = v[i];
k++;
i++;
}
else
{
temp[k] = v[j];
k++;
j++;
}
}
while (i <= mij)
{
temp[k] = v[i];
k++;
i++;
}
while (j <= dr)
{
temp[k] = v[j];
k++;
j++;
}
for (int l = st; l <= dr; l++)
{
v[l] = temp[l - st];
}
}
void mergesort(int v[], int st, int dr)
{
if (st < dr)
{
int mij = (st + dr) / 2;
mergesort(v, st, mij);
mergesort(v, mij + 1, dr);
merge(v, st, dr, mij);
}
}
int main()
{
int v[] = { 9,8,3,6,55,41,1,2,19,53 };
int n = 10;
mergesort(v, 0, n - 1);
for (int i = 0; i < n; i++)
{
cout << v[i] << " ";
}
return 0;
}
*/
// RADIXSORT
/*int maxim(int v[], int n) //functie auxiliara pentru a afla valoarea maxima din array
{
int mx = v[0];
for (int i = 1; i < n; i++)
if (v[i] > mx)
mx = v[i];
return mx;
}
void radixsort()
*/