欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++算法之冒泡排序、选择排序算法实例讲解

程序员文章站 2022-08-04 13:08:02
冒泡排序和选择排序都是低级排序,效率比较低。低级排序最简单的是冒泡排序。 从当前未排序的整数中找一个最小的整数,将它放在已排序的整数数列列表的最后。 要点:选择排序选最小的,往左边选。 冒泡排序是选...

冒泡排序和选择排序都是低级排序,效率比较低。低级排序最简单的是冒泡排序。

从当前未排序的整数中找一个最小的整数,将它放在已排序的整数数列列表的最后。

要点:选择排序选最小的,往左边选。

冒泡排序是选择最大的,而选择排序选择最小的,但是选择排序要相对冒泡排序要快,是因为冒泡排序中间有许多交换的操作,选择排序要找到最小然后进行交换。

#include<iostream>
using namespace std;
void selectsort(int *list,const int n);
int main()
{
    int x[] = {1,3,5,7,9,0,2,4,6,8};
    selectsort(x,10);
    for(int k=0;k<10;k++)
        cout<<x[k]<<" ";
    cout<<endl;
    system("pause");
    return 0;
}
void selectsort(int *list,const int n)
{
    for(int i=0;i<n-1;i++) //最外边的循环是寻找最小的值的次数,可以是n次也可以是n-1次。
    {
        int min = i; //min用来做记号,开始时第一个最小
        for(int j= i+1;j<n;j++)
        {
            //每一遍扫描都是从i+1开始扫描,如果我们发现一个最小的,每次扫描的时候没有排序。
            if(list[j]<list[min])
                min = j; //冒泡排序一般发生在该位置。
        }
        swap(list[i],list[min]);//把最小的放在最左边,0到i是已经排序的,i+1到n-1是未排序的,从未排序的里边找一个最小的放到左面
    }

}