Skip to content

Instantly share code, notes, and snippets.

@galihboy
Last active January 8, 2022 00:34
Show Gist options
  • Save galihboy/51caa320f1f955bee180319dce7ea443 to your computer and use it in GitHub Desktop.
Save galihboy/51caa320f1f955bee180319dce7ea443 to your computer and use it in GitHub Desktop.
Pengambilan data terbesar dan terkecil
"""
https://blog.galih.eu
"""
# Cara 1 - Pengurutan metode selection sort
list_data = [70, 60, 90, 86, 75, 50, 80]
jumlah_cari = 3
for i, bil in enumerate(list_data):
lbaru = list_data[i:]
mins = lbaru[0]
idxmin = 0
# mencari nilai terkecil
for j, a in enumerate(lbaru):
if a < mins:
mins = a
idxmin = j
# tukar tempat
list_data[i], list_data[idxmin+i] = mins, bil
print(f"Data terurut: {list_data}")
# Ambil sejumlah data terbesar dan terkecil
print(f"{jumlah_cari} data terkecil: {list_data[:jumlah_cari]}")
print(f"{jumlah_cari} data terbesar: {list_data[:-jumlah_cari-1:-1]}")
#-----------------------------------------------------------
# Cara 2 - Modul Heapq
import heapq
list_data = [70, 60, 90, 86, 75, 50, 80]
jumlah_cari = 3
# konversi list ke heap (tumpukan)
heapq.heapify(list_data)
print(f"{jumlah_cari} data terkecil adalah ", end="")
print(heapq.nsmallest(jumlah_cari, list_data))
print(f"{jumlah_cari} data terbesar adalah ", end="")
print(heapq.nlargest(jumlah_cari, list_data))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment