冒泡排序
/*
原理是相邻的数两两交换,按照从小到大或者从大到小的顺序进行交换,
这样一趟过去后,最大或最小的数字被交换到了最后一位,
然后再从头开始进行两两比较交换,直到倒数第二位时结束;
*/
#include<stdio.h> #include<iostream> using namespace std; void Bubble_sort(int a[], int n) { int i, j; int temp; //所有排序完整 for (i = 0; i < n-1 ; i++) { for (j = 0; j < n-1-i ; j++) { if (a[j]>a[j+1]) { temp = a[j]; a[j] = a[j+1]; a[j+1]= temp; } } } //一趟排序后的结果 /* for (j = 0; j < n-1; j++) { if (a[j]>a[j+1]) { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } }*/ } int main() { int a[101]; int n,i,j; cin >> n; for (i = 0; i < n; i++) cin >> a[i]; Bubble_sort(a, n); for (i = 0; i < n; i++) cout << a[i] << " "; cout<<endl; return 0; }
//由于冒泡排序算法本身就是一种低效算法,即使判断了在某种条件下已经排序好直接退出,也是十分的耗时