當前位置:編程學習大全網 - 編程軟體 - arduino 冒泡排序法

arduino 冒泡排序法

算法是和標準C++壹樣的,基本思路就是和相鄰的數據判斷,比他大就換位置。代碼大致如下

String?inString;//儲存從串口獲取的字符串

int?num[100];//存儲需要排列的數據數組100位最大值,int表示只接受整型變量

int?p=0,a=0;

void?boboUp()//該函數是冒泡排序的循環

{

int?i,j,temp;?

for(j=0;j<p;j++)?

{?

for(i=0;i<p-j;i++)

{

if(num[i]?>?num[i+1])

{?

temp?=?num[i];

num[i]?=?num[i+1];

num[i+1]?=?temp;

}

}

}

Serial.println("Update?:");//Arduino向串口發送排序好的數組

for(int?k=0;k<p+1;k++)

{

Serial.print(num[k]);

Serial.println(",");

}

}

void?setup()

{

Serial.begin(9600);

}

void?loop()?//讀取串口數據並轉換int(不會告訴妳是從examples扒下來的)

{

while?(Serial.available()?>?0)

{

inString?+=?char(Serial.read()());

delay(2);

a=1;

}

if(a==1)?

{

num[p]=inString.toInt();

boboUp();

inString="";

p++;

a=0;

}

}

我用自己的板子測試可用,結果如下圖

用法是在Serial Monitor最上面的編輯框裏輸入壹個數字單擊send就會向數組裏保存壹個數字(不支持輸入壹串數字,妳試著自己改代碼吧),當數組更新時arduino就會通過串口向計算機返回壹次排好序的數組。最大支持100個整形數字,需要更大的或者需要排列浮點數據之需要根據代碼註釋修改即可。

  • 上一篇:ctrl+c+v 失靈時不靈?
  • 下一篇:液晶模塊哪家好?
  • copyright 2024編程學習大全網