排序算法(不全)

排序算法(还会陆续更新)

  • 冒泡排序
int a[]={1,43,5,23,43564,2,543,5312,6,132};
    auto length = sizeof(a)/sizeof(a[0]);
    for(int n = 0;n < length; n++)
    {
        for(int i = 0;i < length-1; i++)
        {   
            if(a[i]>a[i+1])
            {
                auto b =  a[i];
                a[i] = a[i+1];
                a[i+1] = b;
            }
          
        }
    }

输出数组的方法

for(int i=0;i<10;i++){      //使用数组名和下标输出数组 
		cout<<a[i]<<"  "; 
	}
	cout<<endl;

不能用直接cout的方法,否则输出的就是一个十六进制的地址。

  • 选择排序
    选择排序的基本思想就是在一列数组中首先寻找最大或者最小的值,放在数组的首或者末尾,依次做这个操作,得到排列好的序列。
 int a[]={1,43,5,23,43564,2,543,5312,6,132};
   
    auto length = sizeof(a)/sizeof(a[0]);
    for(int i = 0; i < length-1; i++)
    {
        auto minIndex = i;
        for(int j = i+1; j < length; j++)
        {
            if(a[minIndex] > a[j])
            {
                minIndex = j;//选择保存最小的数在数组中的索引
            }
        }
        auto temp = a[i];
        a[i] = a[minIndex];
        a[minIndex] = temp;
    }
  • 插入排序
    基本思想就是从后向前扫描插入(其实这里的程序写的自己也不是很明白)
int a[]={1,43,5,23,43564,2,543,5312,6,132};
   
    auto length = sizeof(a)/sizeof(a[0]);
    for(int i = 1; i < length; i++)
    {
        auto preIndex = i-1;
        auto temp = a[i];
        while(preIndex >= 0 && a[preIndex] > temp)
        {
            a[preIndex+1] =a[preIndex];
            preIndex--;
        }
        a[preIndex+1] = temp;
    }
  • 快速排序
上一篇:十大排序算法-C++版本


下一篇:排序算法的Java实现Demo