C++冒泡排序和选择排序
冒泡排序:比如有5个数,相邻的两个比较,第一轮总共比较4次,最大的那个沉在最后,他的位置定了,就不管他了,第二轮剩下4个数,继续比较,总共比较3次,一次类推,n个数,比较n-1轮,在第i轮中比较n-i次
选择排序:比如有5个数,将5个数中最小的与a[0]交换,再将剩下的4个数中的最小的与a[1]交换,以此类推,n个数,共比较n-1轮
#include<iostream>
using namespace std;
int main() {
int a[10] = { 2,9,8,6,5,4,7,3,1,0 }, i = 0, j = 0, t = 0 , k = 0 ;
int n = 10;
cout << "原来:" << endl;
for (i = 0;i < n;i++)
cout << a[i]<<" ";
cout << endl;
//选择排序
for (i = 0;i < n-1;i++) {
t = i;
for (j = i+1;j < n;j++) {
if (a[t] > a[j])
t = j;
k = a[t];a[t] = a[i];a[i] = k;
}
}
cout << "选择排序:" << endl;
for (i = 0;i < n;i++)
cout << a[i] << " ";
cout << endl;
//冒泡排序
for (i = 0;i < n - 1;i++) {
for (j = 0;j < n-1-i;j++) {
if (a[j] > a[j+1])
{
k = a[j+1];a[j+1] = a[j];a[j] = k;
}
}
}
cout << "冒泡排序:" << endl;
for (i = 0;i < n;i++)
cout << a[i] << " ";
return 0;
}
下一篇:
快速幂详解以及例题解析
