起泡排序和简单选择排序小结

来源:互联网 发布:工业大数据概念股 编辑:程序博客网 时间:2024/04/28 14:50

    起泡排序和简单选择排序都是一种很简单的排序方法,它们的时间复杂度都为O(N2). 其中起泡排序是一种稳定的排序方法,而简单选择排序是一种不稳定的排序方法.

   这里直接贴代码

  

// 起泡排序和简单选择排序.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#include <iostream>using namespace std;//交换a与bvoid swap(int &a,int &b){  int temp=a;  a=b;  b=temp;}//冒泡排序void  BubbleSort(int * a,int len){    //进行len-1趟冒泡排序for(int i=1;i<len;i++){  bool exchage=false;//标记这一趟冒泡是否进行了数据交换,也就是标记是否排序完成  for(int j=0;j<len-i;j++)  {    if(a[j]>a[j+1]){          swap(a[j],a[j+1]);  exchage=true;}  }  if(!exchage)         break;}}//简单选择排序void SelectSort(int *a,int len){   //将前面n-1个位置的数选择排好,最后一个自动排好了   for(int i=0;i<len-1;i++)   {     int min=i; for(int j=i+1;j<len;j++) { if(a[j]<a[min])   min=j; } if(i!=min) { swap(a[i],a[min]); }   }}//void printArray(int *a,int len){  for(int i=0;i<len;i++)  cout<<a[i]<<" ";  cout<<endl;}int _tmain(int argc, _TCHAR* argv[]){int a[]={49,38,65,97,76,13,27,49};int len=sizeof(a)/sizeof(int);printArray(a,len);    //BubbleSort(a,len);SelectSort(a,len);printArray(a,len);system("PAUSE");return 0;}