在陣列下的選擇、氣泡排序
阿新 • • 發佈:2019-01-24
對於相同型別的大資料,我們常採用在陣列,為了方便快捷查詢,我們總希望對這個陣列進行排序,下面介紹兩種排序:冒泡,選擇排序,其實選擇排序只是氣泡排序的一種進化版,減少了運算次數,提高執行效率,不扯了,下面開始。第一個為選擇,第二個為冒泡
#include <stdio.h> #define N 10 int main() { int a[N] = {9,8,7,6,32,40,3,2,1,0}; int i,j; // 外層迴圈控制比較的輪數 for (i = 0; i < N-1; i++) { // 內層負責查詢每一輪中最小的那個元素 int index = i; for (j = i+1; j < N; j++) { if (a[index] > a[j]) { index = j; } } // 將當前最小的元素與下標位 i 的元素進行交換 if (index != i) { int tmp = a[i]; a[i] = a[index]; a[index] = tmp; } } for (i = 0; i < N; i++) { printf ("%d\n", a[i]); } return 0;
#include <stdio.h> #define N 10 int main() { int a[N] = {9,8,7,6,32,40,3,2,1,0}; int i,j; int tmp; // 外層控制比較的輪數 for (i = 0; i < N-1; i++) { // 內層迴圈控制每一輪比較需要比較的次數 for (j = 0; j < N-i-1; j++) { if (a[j] > a[j+1]) { tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } } for (i = 0; i < N; i++) { printf ("%d\n", a[i]); } return 0; }