Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / 起泡排序和简单选择排序小结

起泡排序和简单选择排序都是一种很简单的排序方法,它们的时间复杂度都为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实现冒泡排序法 http://www.linuxidc.com/Linux/2014-06/103897.htmGo语言实现冒泡排序 http://www.linuxidc.com/Linux/2014-06/103844.htmC++ 使用模板实现冒泡排序 http://www.linuxidc.com/Linux/2014-02/96914.htmJava简单排序之冒泡排序代码 http://www.linuxidc.com/Linux/2013-11/92782.htm冒泡排序优化版,性能近乎翻倍 http://www.linuxidc.com/Linux/2013-09/90710.htm本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-07/104856.htm