內部排序 交換式排序 氣泡排序法

2021-07-06 06:10:11 字數 1574 閱讀 3678

氣泡排序法,很簡單的乙個方法,將相鄰的兩個資料加以比較,並按照規則交換位置,重複此動作,直到比較到最後乙個值結束。

該方法的優點是:若資料已經有部分排好序,則使用該方法可以很快的完成排序。

缺點:該方法會反覆掃瞄資料,比較相鄰的兩個資料,速度不快並且也沒有效率。

該方法是穩定性排序方法。空間複雜度是o(1), 時間複雜度是o(n^2)

[cpp]view plain

copy

void

bubble_sort2(

void

*in_data, 

intlen)  

}  }  }  

[cpp]view plain

copy

void

bubble_sort2(

void

*in_data, 

intlen)  

}  }  }  

傳統氣泡排序中每一次排序只能找到乙個最大值或者最小值,可以考慮在每次排序中進行正向和反向兩次冒泡,一次可以找到兩個最值(最大值和最小值),從而使排序次數減少。

[cpp]view plain

copy

void

bubble_sort3(

void

*in_data, 

intlen)  

--high;           

//修改high值, 前移一位   

for( j = high; j > low; --j) 

//反向冒泡,找到最小者   

if(data[j] < data[j-1])     

++low;                  

//修改low值,後移一位   

printf(

"\n current sorting result:"

);  

for(i = 0; i < len; i++)  

printf(

"%d "

, data[i]);  

}     

}     

[cpp]view plain

copy

void

bubble_sort3(

void

*in_data, 

intlen)  

--high;           //修改high值, 前移一位  

for( j = high; j > low; --j) 

//反向冒泡,找到最小者  

if(data[j] < data[j-1])     

++low;                  //修改low值,後移一位  

printf("\n current sorting result:"

);  

for(i = 0; i < len; i++)  

printf("%d "

, data[i]);  

}     

}     

(學習筆記)陣列排序 冒泡式排序法 交換式排序法

初學小白 裡面會有很多錯誤 僅記錄每天的點滴所用 還望諒解 盡請指出。排序 將一群陣列,按照指定的順序進行排列的過程 排序法內部排序法 指將需要處理的所有資料載入到內部儲存器中進行排序 包括 交換式排序法 選擇式排序法 插入式排序法 外部排序法 資料量過大無法載入於記憶體中。需要借助外部儲存進行排序...

內部排序法 氣泡排序法

氣泡排序法又稱為交換排序法,是由觀察水中冒泡的變化啟發而來。氣泡排序是由第乙個元素開始,比較相鄰元素大小,若大小順序有誤,則對調後再進行下乙個元素的比較。如此掃瞄過一次之後就可確保最後乙個元素是位於正確的順序。接著再逐步進行第二次掃瞄,直到完成所有元素的排序關係為止。例如 陣列 6 4 9 8 3 ...

內部排序 氣泡排序

內部排序 氣泡排序。n個記錄進行氣泡排序的基本方法是 首先將第乙個記錄的關鍵字和第二個記錄的關鍵字進行比較,若為逆序,則交換這2個記錄的值,然後比較第二個記錄和第三個記錄得關鍵字,以此類推,直到第n 1個記錄和第n個記錄得關鍵字比較過為止。上述過程稱為第一趟氣泡排序,其結果是關鍵字最大的記錄被交換到...