selsort2.cpp

来自「data structures, algorithms and Applicat」· C++ 代码 · 共 28 行

CPP
28
字号
// early terminating selection sort

#include <iostream.h>
#include "swap.h"

template<class T>
void SelectionSort(T a[], int n)
{// Early-terminating version of selection sort.
   bool sorted = false;
   for (int size = n; !sorted && (size > 1); size--) {
      int pos = 0;
      sorted = true;
      // find largest
      for (int i = 1; i < size; i++)
         if (a[pos] <= a[i]) pos = i;
         else sorted = false; // out of order
      Swap(a[pos], a[size - 1]);
      }
}

void main(void)
{
   int y[10] = {3, 2, 4, 1, 6, 9, 8, 7, 5, 0};
   SelectionSort(y,10);
   for (int i = 0; i < 10; i++)
      cout << y[i] << ' ';
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?