现在的位置: 首页 > 综合 > 正文

交换排序算法实现

2017年11月12日 ⁄ 综合 ⁄ 共 964字 ⁄ 字号 评论关闭

 

#include <iostream>

template <class elem>
void swap(elem a[], int p1, int p2)
{
     elem tmp = a[p1];
     a[p1] = a[p2];
     a[p2] = tmp;
}

template <class elem>
void print(elem a[], int length)
{
     for (int i = 0; i < length; i++)
         std::cout << a[i] << ' ';
     std::cout << std::endl;
}

template <class elem>
void bub_sort(elem a[], int length)
{
     for (int i = 0; i < length - 1; i++)
         for (int j = length - 1; j > i; j--)
             if (a[j] < a[j-1])
                swap(a, j, j-1);
}

template <class elem>
void insert_sort(elem a[], int length)
{
     for (int i = 1; i < length; i++)
         for (int j = i; j > 0; j--)
             if (a[j] < a[j-1])
                swap(a, j, j - 1);
}

template <class elem>
void select_sort(elem a[], int length)
{
     for (int i = 0; i < length - 1; i++)
     {
         int low_index = i;
         for (int j = length - 1; j > i; j--)
             if (a[j] < a[low_index])
                low_index = j;
         swap(a, low_index, i);
     }
}
int main(void)
{
     int a[] = {42, 20, 17, 13, 28, 14, 23, 15};
     print(a, 8);
     select_sort(a, 8);
     print(a, 8);
     system("pause");
     return 0;
    
}

【上篇】
【下篇】

抱歉!评论已关闭.