冒泡排序c++實現

冒泡排序簡介

冒泡排序(英語: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;
}

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章