為了有效地解決一些問題,將資料項排列在正確的位置非常重要 順序。最受歡迎的排列問題之一是元素排序問題。這 本文將示範如何在 C 中按升序排列陣列成員(根據 值不斷上升)。
要按特定順序排列數字或非數字元素,有多種方法 排序演算法可用於該領域。只需兩種簡單的排序技術即可 將在本文中介紹。選擇排序和冒泡排序。讓我們逐一檢查一下 單獨使用適當的技術和 C 實作代碼。
對陣列元件進行排序的最受歡迎和最直接的方法之一是 冒泡排序方法。在此方法中,依序檢查兩個元素以 看看它們的順序是否正確。如果不是,則該方法會交換元素,直到它們 順序正確。之後,向右移動並對另一組重複此過程 的價值觀。單一元素在結束時被放置在正確的預期位置 冒泡分選技術的幾個階段的每個階段。看看冒泡排序 演算法.
#include <iostream> using namespace std; void display( int arr[], int n ){ for ( int i = 0; i < n; i++ ) { cout << arr[i] << ", "; } } void swap ( int &a, int &b ){ int temp = a; a = b; b = temp; } void solve( int arr[], int n ){ int i, j; for ( i = 0; i < n; i++ ) { for ( j = 0; j < n-1; j++ ) { if ( arr[j] > arr[ j+1 ] ) { swap( arr[j], arr[ j + 1 ] ); } } } } int main(){ int arr[] = {8, 45, 74, 12, 10, 36, 58, 96, 5, 2, 78, 44, 25, 12, 89, 95, 63, 84}; int n = sizeof( arr ) / sizeof( arr[0] ); cout << "Array before sorting: "; display(arr, n); solve( arr, n ); cout << "\nArray After sorting: "; display(arr, n); }
Array before sorting: 8, 45, 74, 12, 10, 36, 58, 96, 5, 2, 78, 44, 25, 12, 89, 95, 63, 84, Array After sorting: 2, 5, 8, 10, 12, 12, 25, 36, 44, 45, 58, 63, 74, 78, 84, 89, 95, 96,
當使用選擇排序策略時,我們從索引 I 開始一直到結束 給定數組,找到最小或最大元素。假設我們是 揭示每一種成分。它定位從索引 I 到末尾的最小元素 每個階段,將元素放置在適當的位置,然後重複該過程 從索引 I 1 中尋找下一個最大元素,依此類推。這些階段即將完成, 然後整個數組將被適當排序。
#include <iostream> using namespace std; void display( int arr[], int n ){ for ( int i = 0; i < n; i++ ) { cout << arr[i] << ", "; } } void swap ( int &a, int &b ){ int temp = a; a = b; b = temp; } int min_index( int arr[], int n, int s, int e ){ int min = 99999, min_ind = -1; for ( int i = s; i < e; i++ ) { if ( arr[i] < min ) { min = arr[i]; min_ind = i; } } return min_ind; } void solve( int arr[], int n ){ int i, j, ind; for ( i = 0; i < n; i++ ) { ind = min_index( arr, n, i, n ); if ( arr[i] > arr[ ind ] ) { swap( arr[i], arr[ ind ] ); } } } int main(){ int arr[] = {8, 45, 74, 12, 10, 36, 58, 96, 5, 2, 78, 44, 25, 12, 89, 95, 63, 84}; int n = sizeof( arr ) / sizeof( arr[0] ); cout << "Array before sorting: "; display(arr, n); solve( arr, n ); cout << "\nArray After sorting: "; display(arr, n); }
Array before sorting: 8, 45, 74, 12, 10, 36, 58, 96, 5, 2, 78, 44, 25, 12, 89, 95, 63, 84, Array After sorting: 2, 5, 8, 10, 12, 12, 25, 36, 44, 45, 58, 63, 74, 78, 84, 89, 95, 96,
一個基本問題是排序,它涉及根據順序排列數字或其他項目 預定的佈局邏輯。該領域還有許多其他可用的排序技術, 但在這篇文章中,我們將重點放在兩個易於使用和理解的。這兩個 排序技術有選擇排序技術和冒泡排序技術。我們有 使用這兩種技術按升序(非降序)排列資料集。 雖然時間效率不是很高,但這兩種排序技術很簡單。兩者的 這兩種技術需要 O(n2) 的時間投入,其中 n 是 輸入。只要判斷是否有變化,後續階段就不會改變 任何階段都沒有交換,可以使冒泡排序更快。
以上是C++程式:將陣列元素升序排序的詳細內容。更多資訊請關注PHP中文網其他相關文章!