Poprawa algorytmu ustawiającego elementy przed sortowaniem

Witam. Mój problem polega na tym, że mam instrukcję do napisania algorytmu, ale stanąłem w pewnym momencie i nie wiem jak wykonać zadanie prawidłowo. Pomoże ktoś?

#include 


using namespace std;


int main() {

	int Tprim[5] = {1,2,3,5,6};

	int T[5];

	int W[5] = {0,0,2,3,4};

	int i,j=0,k,l=4;

	int pomoc;


	for(i=0; i<5; i++) // początkowo nadaje wartosci dla T takie same jak w Tprim

		T[i] = Tprim[i];


	cout << "Poczatkowe wartosci tablicy T = {" ;

	for(i=0 ; i<5 ; i++)

		cout << T[i] << ", ";

	cout << "}";


	i=4;

	for(i; i>=0; i--) {

		k=0;

		j=0;


		while(k!=5){

			if(T[i]
				++j;

				if(j==W[l] && l>=0) {

					pomoc = T[i];

					T[i] = T[k];

					T[k] = pomoc;

					l--;

					i=5;

					break;

				}

			}

			k++;

		}

	}


	cout << endl;

	cout << "Koncowe wartosci tablicy T = {" ;

	for(i=0 ; i<5 ; i++)

		cout << T[i] << ", ";

	cout << "}" << endl;


	return 0;

}