歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> 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.htm

Go語言實現冒泡排序 http://www.linuxidc.com/Linux/2014-06/103844.htm

C++ 使用模板實現冒泡排序 http://www.linuxidc.com/Linux/2014-02/96914.htm

Java簡單排序之冒泡排序代碼 http://www.linuxidc.com/Linux/2013-11/92782.htm

冒泡排序優化版,性能近乎翻倍 http://www.linuxidc.com/Linux/2013-09/90710.htm

Copyright © Linux教程網 All Rights Reserved