Tantangan ini sudah menjelaskan tentang portsort. Namun, saya agak malas dan saya benar-benar hanya perlu array saya untuk sedikit lebih banyak diurutkan daripada sebelumnya, tidak perlu diurutkan sepanjang jalan .
Di Drop Sort, kami menjatuhkan setiap elemen kurang dari elemen apa pun sebelumnya. Di Lazzy Drop Sort, kami menjatuhkan setiap elemen kurang dari yang sebelumnya .
Ini sebuah contoh. Pertimbangkan array berikut:
8 6 9 9 7 2 3 8 1 3
Mari kita tandai setiap elemen kurang dari yang sebelumnya.
8 6 9 9 7 2 3 8 1 3
^ ^ ^ ^
Perhatikan bagaimana tidak 3
ada yang ditandai, maupun yang terakhir 8
. Mereka semua lebih besar dari elemen tunggal di sebelah kiri mereka.
Melengkapi algoritme, menghapus elemen yang ditandai, kita dapatkan:
8 9 9 3 8 3
Itu pada dasarnya terlihat lebih diurutkan. Agak. Aku malas.
Tugas Anda, seperti yang mungkin telah Anda simpulkan, adalah menerapkan algoritma ini.
Input adalah array setidaknya 1 bilangan bulat positif antara 1 dan 9, sehingga Anda dapat mengambil serangkaian angka juga.
Ini adalah kode-golf , byte terkecil menang!
Kasus uji tambahan:
1
1
1 2 3
1 2 3
5 3 1
5
1 2 3 2 1
1 2 3
1 1 1 9 9 9 1 1 1 9 9 9 1 1 1
1 1 1 9 9 9 1 1 9 9 9 1 1
9 9
9 9
5 2 4 2 3
5 4 3