iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 8
0
自我挑戰組

C-Programming系列 第 8

C-Programming - Day08

排序

在資料處理的時候排序是很重要的一個需要處理的問題

不論是什麼資料

都會有排序的問題

但是提到排序就會有效率的問題

先來談談排序的種類

  • 氣泡排序法 (bubble sort)

  • 插入排序法(Insertion sort)

  • 合併排序法(Merge sort)

  • 選擇排序法(Selection sort)

  • 快速排序法(Quick sort)

  • 堆排序法

氣泡排序法

Example

#include <stdio.h>

void bubble_sort(int arr[], int len)
{
  int i, j, temp;
  for (i = 0; i < len - 1; i++)
  {
    for (j = 0; j < len - 1 - i; j++)
    {
      if (arr[j] > arr[j + 1])
      {
        printf("%d > %d\n", arr[j], arr[j + 1]);
        temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
      else
      {
        printf("%d <= %d\n", arr[j], arr[j + 1]);
      }
    }
  }
}

int main()
{
  int arr[] = {22, 34, 3, 32, 82, 55, 89, 50, 37, 5, 64, 37, 5, 64, 35, 9, 70};
  int len = (int)sizeof(arr) / sizeof(*arr);

  bubble_sort(arr, len);
  return 0;
}

在上述範例中可以看到

有一個巢狀迴圈

每跑完一次迴圈

就可以產出一個最大的數

依序將陣列中的數字一個一個由大到小依序排出

就像是一個一個氣泡會慢慢浮出

所以稱之為氣泡排序法


上一篇
C-Programming - Day07
下一篇
C-Programming - Day09
系列文
C-Programming9
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言