冒泡排序(数组方法和指针方法)

来源:互联网 发布:52pk软件下载 编辑:程序博客网 时间:2024/06/03 08:15

wKioL1buuAniHjaHAAAsUDpzbQI301.png

数组方法:

#include<stdio.h>

#include<stdlib.h>

void bubble_sort(int arr[], int sz )

{

                 int i = 0;

                 int j = 0;

                 for (j = 0; j < sz - 1; j++)    //决定最终排序出来需要冒多少次

                {

                         for (i = 0; i < sz - 1 - j; i++)    //决定一次冒泡需要比较多少次

                           {

                                     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;

      }

要注意的是,要理解数组和指针的不同,还有数组和指针写法上的区别。

冒泡排序法的双层循环的上限要掌握好

0 0