C++排序之冒泡排序(1)

来源:互联网 发布:mac卡住怎么办 编辑:程序博客网 时间:2024/05/29 17:36
// BubbleSort.cpp : 定义控制台应用程序的入口点。///*冒泡排序:相信大家再熟悉不过了。但是现在面试,只有从最简单的写起,一个一个的分析。算法描述:从第0个元素开始,依次往下两两进行比较,如果前面的比后面的大,则把这两个元素交换位置,这样一轮下来最大的元素肯定是在最后了。然后又从0开始,循环到倒数第二个,一直这样循环下去。所以,第一层的循环次数是n-1,第二层的循环次数是n-i-1(减i表示后面i个元素已经排好序了)适合情景:在只有少数没有排序的情况下比较合适。时间平均复杂度:O(n^2)最小时间复杂度(已经排好序):O(n)最大时间复杂度(逆序):O(n^2)*/#include "stdafx.h"#include <iostream>#include <iomanip>using namespace std;void BubbleSort(int* a,int n){int i,j,temp;for(i = 0;i < n-1; i++){for(j = 0;j < n-i-1; j++){if( a[j] > a[j+1] ){temp = a[j];a[j] = a[j+1];a[j+1] = temp;}}}}int _tmain(int argc, _TCHAR* argv[]){int a[] = {1,54,5,31,34,55,3};BubbleSort(a,7);for(int i=0; i < 7; i++)cout<<a[i]<<setw(3);return 0;}