; using namespace std; int main() { int a[10]; cout<<"輸入10個數字:"<<endl; for (int i=0;i<10;i++){cin>>a[i];}for(int m=0;m<10;m++) for(int n=0;n<10;n++) { if(a[n]>a[n+1]) { int s; s=a[n]; a[n]=a[n+1]; a[n+1]=s; } }for(int j=0;j<10;j++) cout<<a[j];return 0;}這個就OK了!選擇法是c中對陣列進行排序的一種方法。 以整形陣列元素為例,有陣列A[10](以C語言為例描述),即A[0],A[1],…,A[8],A[9](假設其元素均互不相同)。要求對其元素排序使之遞增有序。 首先以一個元素為基準,從一個方向開始掃描,比如從左至右掃描,以A[0]為基準。 接下來從A[0],…,A[9]中找出最小的元素,將其與A[0]交換。 然後將基準位置右移一位,重複上面的動作,比如,以A[1]為基準,找出A[1]~A[9]中最小的,將其與A[1]交換。 一直進行到基準位置移到陣列最後一個元素時排序結束(此時基準左邊所有元素均遞增有序,而基準為最後一個元素,故完成排序)。冒泡和快速排序的區別在於:冒泡演算法,每次比較如果發現較小的元素在後面,就交換兩個相鄰的元素。將待排序的元素看作是豎著排列的"氣泡",較小的元素比較輕,從而要往上浮。在氣泡排序演算法中我們要對這個"氣泡"序列處理若干遍。所謂一遍處理,就是自底向上檢查一遍這個序列,並時刻注意兩個相鄰的元素的順序是否正確。如果發現兩個相鄰元素的順序不對,即"輕"的元素在下面,就交換它們的位置。顯然,處理一遍之後,"最輕"的元素就浮到了最高位置;處理二遍之後,"次輕"的元素就浮到了次高位置。在作第二遍處理時,由於最高位置上的元素已是"最輕"元素,所以不必檢查。一般地,第i遍處理時,不必檢查第i高位置以上的元素,因為經過前面i-1遍的處理,它們已正確地排好序。而選擇排序演算法的改進在於:先並不急於調換位置,先從A[1]開始逐個檢查,看哪個數最小就記下該數所在的位置P,等一躺掃描完畢,再把A[P]和A[1]對調,這時A[1]到A[10]中最小的資料就換到了最前面的位置。 所以,選擇排序每掃描一遍陣列,只需要一次真正的交換,而冒泡可能需要很多次。比較的次數是一樣的。 其實看你宣告的變數的個數就知道了。選擇的要比冒泡的多宣告一個,用來儲存最小(或最大的)元素的下標。而冒泡的比較後直接換。
; using namespace std; int main() { int a[10]; cout<<"輸入10個數字:"<<endl; for (int i=0;i<10;i++){cin>>a[i];}for(int m=0;m<10;m++) for(int n=0;n<10;n++) { if(a[n]>a[n+1]) { int s; s=a[n]; a[n]=a[n+1]; a[n+1]=s; } }for(int j=0;j<10;j++) cout<<a[j];return 0;}這個就OK了!選擇法是c中對陣列進行排序的一種方法。 以整形陣列元素為例,有陣列A[10](以C語言為例描述),即A[0],A[1],…,A[8],A[9](假設其元素均互不相同)。要求對其元素排序使之遞增有序。 首先以一個元素為基準,從一個方向開始掃描,比如從左至右掃描,以A[0]為基準。 接下來從A[0],…,A[9]中找出最小的元素,將其與A[0]交換。 然後將基準位置右移一位,重複上面的動作,比如,以A[1]為基準,找出A[1]~A[9]中最小的,將其與A[1]交換。 一直進行到基準位置移到陣列最後一個元素時排序結束(此時基準左邊所有元素均遞增有序,而基準為最後一個元素,故完成排序)。冒泡和快速排序的區別在於:冒泡演算法,每次比較如果發現較小的元素在後面,就交換兩個相鄰的元素。將待排序的元素看作是豎著排列的"氣泡",較小的元素比較輕,從而要往上浮。在氣泡排序演算法中我們要對這個"氣泡"序列處理若干遍。所謂一遍處理,就是自底向上檢查一遍這個序列,並時刻注意兩個相鄰的元素的順序是否正確。如果發現兩個相鄰元素的順序不對,即"輕"的元素在下面,就交換它們的位置。顯然,處理一遍之後,"最輕"的元素就浮到了最高位置;處理二遍之後,"次輕"的元素就浮到了次高位置。在作第二遍處理時,由於最高位置上的元素已是"最輕"元素,所以不必檢查。一般地,第i遍處理時,不必檢查第i高位置以上的元素,因為經過前面i-1遍的處理,它們已正確地排好序。而選擇排序演算法的改進在於:先並不急於調換位置,先從A[1]開始逐個檢查,看哪個數最小就記下該數所在的位置P,等一躺掃描完畢,再把A[P]和A[1]對調,這時A[1]到A[10]中最小的資料就換到了最前面的位置。 所以,選擇排序每掃描一遍陣列,只需要一次真正的交換,而冒泡可能需要很多次。比較的次數是一樣的。 其實看你宣告的變數的個數就知道了。選擇的要比冒泡的多宣告一個,用來儲存最小(或最大的)元素的下標。而冒泡的比較後直接換。