排序算法

来源:互联网 发布:淘宝上考研资料可靠吗 编辑:程序博客网 时间:2024/04/29 16:10

C++ 排序算法

1. 冒泡排序

先看代码

// 冒泡排序   从最大的向最小的依次交换位置template<typename T>void BubbleSort(T A[], int n){    for (int i=0; i < n; i++)   //第一次使用递增,每次冒泡出最小的    {        bool flag = false; //如果flag为true说明此次排序没有交换位置        for (int j = 1; j <= n-i; j++)  // 每一次循环使得最大值放在了最后面        {            if (A[j] < A[j-1])            {                 T temp = A[j];                A[j] = A[j-1];                A[j-1] = temp;                flag = true;            }        }        if (!flag)            break;    }}

以上为冒泡排序的一个改进算法,使用了模板的方式,是的不仅仅局限于一种类型;
原理解释:见注释

2.插入排序(普通方式)

每次从数组中拿出一个,与已经排好序的进行比较,插入到指定的位置

0 0