排序算法(还会陆续更新)
- 冒泡排序
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;
}
- 快速排序