Вторник, 27 Юли 2010 00:07

сортиране метод на мехурчето

Написана от 
Оценете
(3 гласа)

Условие

Имате предварително въведен едномерен масив с елементи от интервала [-100..100]
Да се състави програма на C++, която сортира вектора по метода на мехурчето.
Пример:
5,6,8,1,2,3,4,7,9,11
Изход:
1,2,3,4,5,6,7,8,9,11

Решение

 
#include<iostream>
using namespace std;
int main()
{const int n=10;
int a1,mas[n]={15,6,8,1,2,3,4,7,9,11};
int a,b,razm;
cout<<"Da se systawi programa, koqto sortira po metoda na mehurcheto\n";
cout<<"predwaritelno wyweden ednomeren masiw s elementi w granicite\n";
cout<<"[-100 +100]\n";
cout<<"Primer: 5,6,8,1,2,3,4,7,9,11 Izhod 1,2,3,4,5,6,7,8,9,11\n";
cout<<"Nachalno systoqnie na masiwa: \n";
 for (a=0;a<n;a++) {cout<<mas[a]<<"; ";}//pechat na nesortiraniq masiw
 cout<<endl;
 razm=0;//sledqt se broj izwyrsheni rezmeni
 cout<<"Zapochwa sortirane..\n";
b=1;//flag dali e izwyrshwana razmqna na stojnosti - podrevdane
 while (b>0)
 { //dokato ne preminat wsichki prowerki bez razmqna na stojnost
 b=0;//w nachaloto na obikolkata se priema, che ne e izwyrshwana razmqna
 for (a=1;a<n;a++)
  {//prowerqwat se wsichki elementi ot wtoriq do posledniq element
    if (mas[a]<mas[a-1]) //srawnqwat se tekushiq element s predhodniq
    { b=1;//izwyrshwa se razmqna na stojnosti
      a1=mas[a-1];//razmqna na stojnosti chrez treta promenliwa
      mas[a-1]=mas[a];
      mas[a]=a1;
      razm++;
     }//kraj if
  }//kraj for
for (a=0;a<n;a++) {cout<<mas[a]<<"; ";}//pechat na nesortiraniq masiw
 cout<<" - etap na sortirane\n";
 }//kraj while
cout<<"Systoqnie na masiwa sled sortirane: \n";
 for (a=0;a<n;a++) {cout<<mas[a]<<"; ";}//pechat na sortiraniq masiw
 cout<<endl;
 cout<<"Broj izwyrsheni razmeni: "<<razm<<endl;
system("pause");
  return 0;
} //kraj na programa sortirane

Прочетена 5655 пъти Последно променена в Вторник, 07 Декември 2010 14:05
Още в тази категория: сортиране пряка размяна »