蛮力法:
选择排序法:
算法思想:在剩余序列中选出最小(或最大)的关键字,和剩余序列的第一个关键字交换位置,依次选择下去(每次扫描结束找出最小的一个元素依次放在前面的位置),直至使整个序列有序。
代码实习:
#include<iostream>
using namespace std;
void print(int a[], int n)
{
for(int j= 0; j<n; j++)
{
cout<<a[j] <<" ";
}
cout<<endl;
}
void selectSort(int a[], int len)
{
int minindex, temp;
for(int i = 0; i<len-1;i++)
{
minindex = i;
for(int j = i+1; j<len; j++)
{
if(a[j]<a[minindex])
minindex = j;
}
temp = a[i];
a[i] = a[minindex];
a[minindex] = temp;
}
}
int main()
{
int a[10] = {8,1,9,7,2,4,5,6,10,3};
cout<<"初始序列:";
print(a,10);
selectSort(a,10);
cout<<"排序结果:";
print(a,10);
system("pause");
}
算法分析:
算法中两层循环的执行次数和初始序列没有关系,第二层循环每一次都需要遍历剩余带排序序列,故时间复杂度为O(n^2)。
冒泡排序法:
算法思想:
冒泡排序法每次是将相邻两个元素进行比较,将较大(小)的元素放在后面,这样一次扫描结束后就将当前最大(小)的那个元素放在