雖然很簡單但還是要複習一下的基礎排序法之一:泡泡排序法

這大概是所有學寫程式的人一定會遇到的問題。這個問題練習了兩個主題,一個是基礎排序,另外一個是兩值交換。兩值交換有好幾種方法,一種是多增加一個變數,用三個空間做兩個值的互換,另外一種是只能用在數字上:B=A+B, A=B-A, B=B-A。這種方法可以在不增加變數空間佔用的狀況下實現兩個數值的交換>

範例:
int A = 9;

int B=1;

//AB要互換


B = A+B; //這時候 A=9, B=10

A=B-A; // 這時候A=1, B=10

B=B-A; //這時候A=1, B=9, 交換結束。

 

不過這種方法實在太複雜,所以沒必要還是不要用,一不小心就會寫錯的東西只能拿來炫耀而已ㄎㄎㄎ...

 

#include <iostream>
using namespace std;

const int size = 10;

void sort(int arr[size], int n)
{
    for (int i=0;i<n;i++)
    {
        for (int j=0; j<n-1;j=j+1)
        {
            if(arr[j]>arr[j+1])
            {
                int temp = arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
        }

     }
}

void main()
{
int array[size] = {9,8,7,6,5,4,3,2,1,0};
sort(array, size);
for (int i=0; i<size;i++)
{
cout<<array[i]<<"\t";
}
system("pause");
}

arrow
arrow

    archerdevil 發表在 痞客邦 留言(0) 人氣()