程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 幾種常見的排序算法

幾種常見的排序算法

編輯:C++入門知識

[cpp]  // 經典冒泡排序   void BubbleSort(int arr[], int n)   {       int i = 0, j =0;           for(i = 0; i < n; i++)           for(j = 0; j < n - 1 - i; j++)           {               if(arr[j] > arr[j + 1])               {                   arr[j] = arr[j] ^ arr[j+1];                   arr[j+1] = arr[j] ^ arr[j+1];                   arr[j] = arr[j] ^ arr[j+1];               }                       }       }     交換兩個數據,可以用用臨時變量,也可用以下的兩個方法 a = a^b; b = a^b; a = a^b; 或者 a = a + b; b = a - b; a = a - b;   [cpp]   // 選擇排序   void SelectSort(int arr[], int n)   {       int i, j;       int min;              for(i = 0; i < n - 1; i++)       {           int index = 0;           min = arr[i];           for(j = i + 1; j < n; j++) //找出 i+1 - n 無序區的最小者與arr[i]交換           {               if(arr[j] < min)               {                   min = arr[j];                   index = j;                    }             }           if(index != 0) //表明無序區有比arr[i]小的元素           {               arr[i] = arr[i]^arr[index];               arr[index] = arr[i]^arr[index];               arr[i] = arr[i]^arr[index];           }       }   }   感覺比冒泡法好多啦 [cpp]   //快速排序算法   void QuickSort(int arr[], int n)   {       int i =0 , j = n - 1;       int key = arr[0];       int index = 0;              if(n <= 1)           return;                  while(i < j)       {           // 從後向前搜索           while(j > i && arr[j] > key)               j--;           if(j == i)               break;           else           {               arr[i++] = arr[j];               index = j;           }                      // 從前向後搜索           while(i < j && arr[i] <key)               i++;           if(i == j)               break;           else           {               arr[j--] = arr[i];               index = i;           }                   }           QuickSort(arr, index);       QuickSort(arr + index + 1, n - 1 - index);   }  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved