Rumah >Tutorial sistem >LINUX >Menggunakan kekerasan untuk menyelesaikan masalah pengisihan pemilihan
Kaedah brute force adalah cara yang mudah dan langsung untuk menyelesaikan masalah, selalunya berdasarkan secara langsung pada huraian masalah dan definisi konsep yang terlibat.
Pada permulaan isihan pemilihan, imbas keseluruhan senarai untuk mencari elemen terkecil, kemudian tukarkannya dengan elemen pertama, dan letakkan elemen terkecil pada kedudukan terakhirnya dalam senarai tertib. Kemudian kita mengimbas senarai bermula dari elemen kedua, cari nilai minimum elemen terakhir (n-1), tukar dengan elemen kedua, dan letakkan elemen kedua terkecil pada kedudukan terakhirnya dalam senarai. Secara umumnya, apabila mengimbas senarai untuk kali ke-i (nilai i berjulat dari 0 hingga n-2), algoritma mencari elemen terkecil di antara elemen terakhir (n-i), dan kemudian menukarnya dengan Ai, dalam ( Selepas n-1) berlalu, senarai itu diisih.
#include using namespace std; int main() { int i,j,temp,minn,N; cin>>N; int *Arr=new int[N]; for(i=0;i<n cin>>Arr[i]; for(i=0;iArr[j]) minn=j;//记录最小值的下标 } temp=Arr[minn]; //交换Arr[minn]和Arr[i]。 Arr[minn]=Arr[i]; Arr[i]=temp; } for(i=0;i<n cout return> <div style="margin-top: 2em; margin-bottom: 1em;"><span style="color: #1e1e1e; letter-spacing: 2px; border-left: #FF3030 3px solid; border-right: #FF3030 3px solid; padding-left: 8px; padding-right: 8px; font-size: 12pt;"><strong>Analisis Algoritma:</strong></span></div> <p>Saiz input ditentukan oleh bilangan elemen n Operasi asas ialah perbandingan nilai utama Arr[minn]>Arr[j]. Bilangan kali perbandingan ini dilakukan hanya bergantung pada saiz tatasusunan, </p> <p>C(n)=∑[i=0,i=N-2] ∑[j=i+1,j=N-1]=∑[i=0,i=N-2] ((N-1 )-(i+1)+1))=∑[i=0,i=N-2](N-i-1)=(n-1)*n/2</p> <p>Iaitu, untuk sebarang input, isihan pemilihan ialah algoritma dengan kerumitan masa Θ(n2). Bilangan pertukaran kunci ialah Θ(n) <i>Ini menjadikan isihan pemilihan berprestasi lebih baik. </i></p></n></n>
Atas ialah kandungan terperinci Menggunakan kekerasan untuk menyelesaikan masalah pengisihan pemilihan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!