Notasi :
//judul : Shell sort
//oleh : rizky syah gumelar
//tanggal : 2 April 2022
//deskripsi :
temp, x, y, z <-- interger
bil[6] = {34,98,17,70,6,29} <--
interger, array
//int main
x <-- 0 //awalan
while (x < 6){ //target
output
bil[x] //yang diulang
x
= x + 1 //counter
}
x = 6/2 <-- karena data array ada
6 dan data tersebut dibagi 2 untuk membandingkan data
while (x > 0){ //Kondisi
y
= x
while
(y < 6){
temp
= bil[y] //memasukkan data ke variabel
lain sebelum bertukar
z=y
while
(z >= x dan bil[z-x] > temp){
//
bertukar
bil[z]
= bil[z-x]
z
= z - x
}
bil[z]
= temp
y
= y + 1
}
x
= x/2
}
output "Urutan data dari yang
terkecil ke terbesar :"
//nilai x direset ke 0 untuk output
x <-- 0
while (x < 6){
output
bil[x]
}
//judul : Shell sort
//oleh : rizky syah gumelar
//tanggal : 2 April 2022
//deskripsi :
#include <iostream>
using namespace
std;
int main()
{
//kamus
int
temp, x, y, z;
int
bil[6] =
{34,98,17,70,6,29};
//cetak
cout <<
"Data yang diinput :"
<< endl;
x=0;
while(x<6){
cout <<
bil[x] << "
";
x++;
}
//shell sort versi for
/*for (x = 6 / 2; x > 0; x /= 2) {
for (y = x; y < 6; y
+= 1) {
temp = bil[y];
for (z = y; z
>= x && bil[z - x] > temp; z -= x) {
bil[z] =
bil[z - x];
}
bil[z] = temp;
}
}*/
//shell sort
x =
6/2;
while(x>0){
y=x;
while(y<6){
temp =
bil[y];
z=y;
while(z
>= x &&
bil[z - x] >
temp){
bil[z] = bil[z -
x];
z-=x;
}
bil[z] =
temp;
y+=1;
}
x/=2;
}
//output
cout <<
"\n\nUrutan
data dari yang terkecil ke terbesar :" <<
endl;
x=0;
while(x<6){
cout <<
bil[x] << "
";
x++;
}
cout <<
endl;
return
0;
}
Screenshot hasil:
Komentar
Posting Komentar