Jika distribusi derajat diberikan sebagai daftar derajat, maka Anda dapat melakukan yang berikut, diberikan simpul dengan derajat :d 1 , . . . , d nnd1,...,dn
Buat grafik lengkap pada -vertices. Untuk setiap simpul dalam , pisahkan menjadi salinan. Membagi di sini berarti, membuat sejumlah salinan dengan tepian ke setiap simpul memiliki tepi untuk, tetapi tidak ada tepi ke salinan lain dari . Jika maka cukup hapus simpul. Dalam grafik baru, panggil simpul ini untuk . n v i K n d i v i v i d i = 0 v i j 1 ≤ j ≤ d iKnnviKndivividi=0vij1≤j≤di
Setelah selesai, Anda memiliki grafik yang sangat padat pada simpul; sebut grafik ini . Pilih algoritma favorit Anda untuk pencocokan maksimum (karena grafik begitu padat, Anda mungkin harus menggunakan salah satu algoritma cepat matriks-perkalian berbasis) dan menjalankannya pada . Ini akan mengembalikan nilai cocok . Jika pencocokan tidak sempurna (yaitu jika tidak mencakup semua simpul) maka distribusi gelar Anda tidak mungkin; jadi kembalikan no . H H MN=d1+...+dnHHM
Jika Anda memiliki cocok dengan sempurna , maka hapus semua tepi bukan dalam dari , dan kemudian untuk setiap menggabungkan banyak simpul menjadi satu titik . Menggabungkan dua simpul berarti menggabungkan mereka menjadi satu, sehingga simpul yang dihasilkan memiliki tepi ke setiap simpul setidaknya satu dari yang asli memiliki tepi. Panggil grafik yang dihasilkan ; ia memiliki distribusi derajat yang diinginkan.M H 1 ≤ i ≤ n d i v i 1 , . . . , v i d i u i GMMH1≤i≤ndivi1,...,vidiuiG
Runtime yang dihasilkan adalah mana adalah konstanta untuk algoritma penggandaan-matriks tercepat (yang pada saat penulisan adalah sekitar ). Dalam hal jumlah simpul dalam grafik yang dihasilkan, dalam kasus terburuk distribusi derajat menjadi padat, kita memiliki .ω 2.373 O ( n 2 ω )O(Nω)ω2.373O(n2ω)