氣泡排序演算法(優化版)

2021-07-03 06:28:36 字數 555 閱讀 2249

#include

#include

#include

//排序用到的結構和函式

#define maxsize 20

typedef

struct

sqlist;

//交換l中陣列r的下標為i和j的值

void swap(sqlist * l,int i,int j)

//氣泡排序(優化版)

void bubblesort(sqlist * l)}}

}//輸出元素

void print(sqlist * l)

printf("\n");

}int main()

printf("排序前的陣列: ");

print(&l);

bubblesort(&l);

printf("排序後的陣列: ");

氣泡排序優化版

優化 因為排序過程中,各元素不斷接近自己的位置如果一趟比較下來沒有進行交換,就說明序列有序,因此要在排序過程中設定乙個標誌flag判斷元素是否進行過交換。從而減少不必要的比較。實現 int arr int t 0 中間變數 boolean flag false 標誌當前迴圈是不是一次也沒進行交換,沒...

氣泡排序 氣泡排序演算法優化

常用的排序演算法主要包括 1 插入排序 直接插入排序 希爾排序 2 交換排序 氣泡排序 快速排序 3 選擇排序 簡單選擇排序 堆排序快速排序 4 歸併排序其中,氣泡排序算是最簡單的一種排序演算法 public class bubble int temp 0 for int i 0 iarr j 1 ...

排序 氣泡排序 標準優化版

前面我們提到氣泡排序的標準版,下面我們來對氣泡排序進行優化。為什麼要進行優化呢?首先,我們要知道,氣泡排序用的是相連兩個之間的比較。而最外層的迴圈次數是陣列的長度 1,那麼,有沒有不用全部迴圈結束,就能排好序呢?這種情況是有的,比如,我們需要排序的序列是 也就是說,除了第一和第二元素之外,別的都是正...