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

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

这里直接贴代码

// 起泡排序和简单选择排序.cpp : 定义控制台应用程序的入口点。

#include "stdafx.h"
#include <iostream>

using namespace std;

//交换a与b
void 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;
}

Python实现冒泡排序法

Go语言实现冒泡排序

C++ 使用模板实现冒泡排序

Java简单排序之冒泡排序代码

冒泡排序优化版,性能近乎翻倍

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/a18ce97e350cf3b3c4cc5b5c9b2df11c.html