冒泡排序簡介
冒泡排序(英語:Bubble Sort)是一種簡單的排序算法。它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個算法的名字由來是因爲越小的元素會經由交換慢慢“浮”到數列的頂端。
實現代碼
// 冒泡排序.cpp : 定義控制檯應用程序的入口點。
//原理:比較兩個相鄰的元素,將值大的元素交換至右端。
#include "stdafx.h"
#include <iostream>
using namespace std;
class solution{
public:
//冒泡排序這裏傳入的是數組指針,返回的指針即數組首地址
int* bubble_sort(int* data,int length)
{
// 在c++的函數裏面,如果把一個數組作爲參數傳進去,那麼這個數組就會退化爲一個指針,
//因而就不知道這個數組的長度(這裏的數組指的是靜態的而不是new出來的).
//int length = sizeof(data[0]); 有問題
if (data == NULL||length ==0)
{
return NULL;
}
//
//這個循環☞每走完一次,最後的下標向前移
for (int j = 0;j<=length-1;j++)
{
//先寫這一段,i是下標,
//內嵌循環實現交換,第一次是將數組i下標從0移動到下標length-2
//因爲後面有data[i+1]
for(int i = 0;i<=length-2-j;i++)
{
if(data[i]>=data[i+1])
{
int temp = data[i+1];
data[i+1] = data[i];
data[i] = temp;
}
}
}
return data;
}
};
int main()
{
//用數組長度都不能獲取
int a[11] ={-12,2,33,5,34,34,344,-67,89,123,-90};
int length = 11;
//int length = sizeof(a[0]);//
solution mm ;
mm.bubble_sort(a,length);
for(int j = 0;j<=length-1;j++){
cout<<a[j]<<" ";
}
cout<<""<<endl;
system("pause");
return 0;
}