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; }
下一篇:
快速幂详解以及例题解析