冒泡排序(數組方法和指針方法)

wKioL1buuAniHjaHAAAsUDpzbQI301.png

數組方法:數組

#include<stdio.h>ide

#include<stdlib.h>spa

void bubble_sort(int arr[], int sz )3d

{指針

                 int i = 0;blog

                 int j = 0;排序

                 for (j = 0; j < sz - 1; j++)    //決定最終排序出來須要冒多少次get

                {it

                         for (i = 0; i < sz - 1 - j; i++)    //決定一次冒泡須要比較多少次io

                           {

                                     if (arr [i] < arr[i + 1])

                                   {

                                            int tmp = arr [i];

                                            arr[i] = arr [i + 1];

                                           arr[i + 1] = tmp;

                                      }

                                }

                }

}


int main()

{

                 int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

                 int i = 0;

                bubble_sort(arr, sizeof(arr) / sizeof (arr[0]));

                 for (i = 0; i < sizeof (arr) / sizeof(arr[0]);i++)

                {

                                printf( "%d  ", arr[i]);

                }

                printf( "\n");

                system( "pause");

                 return 0;

}

指針方法:

if (*(arr + i) < *(arr + i + 1))

    {

                  int tmp = *(arr + i);

                 *( arr + i) = *(arr + i + 1);

                 *( arr + i + 1) = tmp;

      }

要注意的是,要理解數組和指針的不一樣,還有數組和指針寫法上的區別。

冒泡排序法的雙層循環的上限要掌握好

相關文章
相關標籤/搜索