下面的几种排序算法都是非常经典的排序算法。
1) 冒泡排序(Bubble Sort)
2) 选择排序(Select Sort)
3) 插入排序(Insert Sort)
void Bubble_Sort(int Arr[], int nLen) { int i = 0; int j = 0; if (NULL == Arr || nLen <= 0) { return; } for (i = 0; i < nLen-1; i++) { for (j = i+1; j < nLen-i; ++j) { if (Arr[i] > Arr[j]) { Swap(Arr[i], Arr[j]); } } } }
void Select_Sort(int Arr[], int nLen) { if (NULL == Arr || nLen <= 0) { return; } int i = 0; int j = 0; int nMin; for (; i < nLen-1; i++) { int nMin = i; // 这一趟循环里选出最值 for (j = i+1; j < nLen; j++) { if (Arr[nMin] > Arr[j]) { nMin = j; } } // 将选出的最值进行交换 if (nMin != i) { Swap(Arr[i], Arr[j]); } } }
void Insert_Sort(int Arr[], int nLen) { if (NULL == Arr || nLen <= 0) { return; } // 循环从第二个数组元素开始 for (int i = 1; i < nLen; i++) { int nTmp = Arr[i]; // 从最邻近的一个一直往前查找 int index = i-1; while ((Arr[index] > nTmp)&&(index >= 0)) { // 数据往后迁移 Arr[index+1] = Arr[index]; index--; } Arr[index+1] = nTmp; } }