liên_kết=https://en.wikipedia.org/wiki/File:Bubble-sort-example-300px.gif|nhỏ|300x300px|**Một ví dụ về sắp xếp nổi bọt. Bắt đầu từ vị trí đầu tiên của danh sách (bên trái), so sánh các cặp số với nhau, nếu không đúng thứ tự nhỏ-lớn thì đảo vị trí. Sau khi chạy tới cuối danh sách, tiếp tục chạy lại từ vị trí đầu danh sách cho đến khi hoàn thành so sánh và đảo vị trí.
alt=Sắp xếp nổi bọt màu đã chỉnh sửa|frame|Sắp xếp nổi bọt màu đã chỉnh sửa|302x302px
Sắp xếp nổi bọt (tiếng Anh: bubble sort) là một thuật toán sắp xếp đơn giản, với thao tác cơ bản là so sánh hai phần tử kề nhau, nếu chúng chưa đứng đúng thứ tự thì đổi chỗ (swap). Có thể tiến hành từ trên xuống (bên trái sang) hoặc từ dưới lên (bên phải sang). Sắp xếp nổi bọt** còn có tên là sắp xếp bằng so sánh trực tiếp. Nó sử dụng phép so sánh các phần tử nên là một giải thuật sắp xếp kiểu so sánh.
Giải thuật
Sắp xếp từ trên xuống
Giả sử dãy cần sắp xếp có n phần tử. Khi tiến hành từ trên xuống, ta so sánh hai phần tử đầu, nếu phần tử đứng trước lớn hơn phần tử đứng sau thì đổi chỗ chúng cho nhau. Tiếp tục làm như vậy với cặp phần tử thứ hai và thứ ba và tiếp tục cho đến cuối tập hợp dữ liệu, nghĩa là so sánh (và đổi chỗ nếu cần) phần tử thứ n-1 với phần tử thứ n. Sau bước này phần tử cuối cùng chính là phần tử lớn nhất của dãy.
Sau đó, quay lại so sánh (và đổi chố nếu cần) hai phần tử đầu cho đến khi gặp phần tử thứ n-2....
Ghi chú: Nếu trong một lần duyệt, không phải đổi chỗ bất cứ cặp phần tử nào thì danh sách đã được sắp xếp xong.
Sắp xếp từ dưới lên
Sắp xếp từ dưới lên so sánh (và đổi chỗ nếu cần) bắt đầu từ việc so sánh cặp phần tử thứ n-1 và n. Tiếp theo là so sánh cặp phần tử thứ n-2 và n-1,... cho đến khi so sánh và đổi chỗ cặp phần tử thứ nhất và thứ hai. Sau bước này phần tử nhỏ nhất đã được nổi lên vị trí trên cùng (nó giống như hình ảnh của các "bọt" khí nhẹ hơn được nổi lên trên). Tiếp theo tiến hành với các phần tử từ thứ 2 đến thứ nm.
Mã giả
Sắp xếp từ trên xuống
procedure bubble_sort1(list L, number n) //n=listsize
For number i from n downto 2
for number j from 1 to (i - 1)
if L[j] > L[j + 1] //nếu chúng không đúng thứ tự
swap(L[j], L[j + 1]) //đổi chỗ chúng cho nhau
endif
endfor
endfor
endprocedure
Sắp xếp từ dưới lên
procedure bubble_sort2(list L, number n) //n=listsize
For_ number i from 1 to_ n-1
for number j from n-1 downto i
if L[j] > L[j + 1] //nếu chúng không đúng thứ tự
swap(L[j], L[j + 1]) //đổi chỗ chúng cho nhau
endif
endfor
endfor
endprocedure
Giảm bớt vòng duyệt
Nếu trong một lần duyệt nào đó với một i cố định khi vòng lặp j kết thúc mà không cần phải đổi chỗ cặp phần tử nào, nghĩa là mọi cặp phần tử kề nhau đã đứng đúng thứ tự thì dãy đã được sắp xếp và không cần tiến hành vòng lặp tiếp theo. Do đó có thể dùng một cờ để kiểm soát việc này. Ta có một đoạn mã giả của thuật toán nổi bọt như sau:
procedure bubble_sort3(list L, number n)
i:= n
while i > 1 do
has_swapped:= 0 //khởi tạo lại giá trị cờ
for number j from 1 to (i - 1)
if L[j] > L[j + 1] //nếu chúng không đúng thứ tự
swap(L[j], L[j + 1]) //đổi chỗ chúng cho nhau
has_swapped:= 1 //có đổi chỗ ít nhất một lần, danh sách chưa sắp xếp xong
endif
endfor
if has_swapped = 0 //nếu không có lần đổi chỗ nào, danh sách đã sắp xếp xong
exit
else //nếu có ít nhất một lần đổi chỗ, danh sách chưa sắp xếp xong
i = i - 1
endif
enddo
endprocedure
Ghi chú: Cũng có thể không cần dùng đến biến i, khi đó mỗi lần kiểm tra đều phải duyệt từ đầu đến cuối dãy.
Thời gian tính
Với mỗi i = 1,2,..,n-1 ta cần i phép so sánh. Do đó số nhiều nhất các lần so sánh và đổi chỗ trong giải thuật là
::
Do đó độ phức tạp của giải thuật cỡ O().
Mã thật ví dụ
Viết bằng Pascal
var a: array[1..1000] of integer;
n, i: integer;
procedure BubbleSort;
var
i, j, tmp: integer;
begin
for i:= 1 to n - 1 do
for j:= i + 1 to n do
if a[i] < a[j] then
begin
tmp:= a[i];
a[i]:= a[j];
a[j]:= tmp;
end;
end;
BEGIN
readln(n);
for i:= 1 to n do
readln(a[i]);
BubbleSort;
for i:= 1 to n do
write(a[i], ' ');
readln
END.
Viết bằng Java
private static void bubbleSort(int[] unsortedArray, int length) {
int temp, counter, index;
for(counter=0; counter<length-1; counter++) { //Loop once for each element in the array.
for(index=0; index<length-1-counter; index++) { //Once for each element, minus the counter.
if(unsortedArray[index] > unsortedArray[index+1]) { //Test if need a swap or not.
temp = unsortedArray[index]; //These three lines just swap the two elements:
unsortedArray[index] = unsortedArray[index+1];
unsortedArray[index+1] = temp;
}
}
}
}
Viết bằng C++
#include
using namespace std;
long long a[N], n;//Thay N là số phần tử trong mảng
template<class T,class Cmp = less >
void bubblesort(T L,T R,Cmp ss= less()) //sap L,(L+1)...(R-1)
{
for(T i=L;i<R;i++)
for(T j=R-1;j>L;j--)
if(ss(j,(j-1)))
swap(j,*(j-1));
}
int main() {
cin>>n;
for(int i=1; i<=n;i++)
cin>>a[i];
bubblesort(a+1,a+n+1);
for(int i=1; i<=n;i++)
cout<<a[i]<<" ";
}
Viết bằng PHP
$arr=array(1,5,7,8,9,10,2,3,6);
function s($a,$b){
if($a==$b){
return 1;
}
if($a<$b){
return 1;
}else{
return -1;
}
}
usort($arr,'s');
print_r($arr);
exit();
other code
$arr = [...];
$arr_count = count($arr);
//loop
for ($i = 0; $i < $arr_count; $i++)
{
for ($j = 1; $j < $arr_count - $i; $j++)
{
if ($arr[$j-1] > $arr[$j])
{
$tmp = $arr[$j-1];
$arr[$j-1] = $arr[$j];
$arr[$j] = $tmp;
}
}
}
for($i=0;$i<$arr_count;$i++){
echo $arr[$i]."
";
}
Viết bằng Python
list = []
list_final = []
num = int(input("how many number you want to add?\n"))
for i in range(num) :
number = int(input("adding numbers"))
list.append(number)
if list[i] not in list_final :
list_final.append(list[i])#if list exits the same number many timnes , it will delete and make the list_final
for j in range(len(list_final)):
for k in range(j):
if list_final[j] < list_final[k]:#compare numbers in the list
tmp = list_final[j]
list_final[j] = list_final[k]
list_final[k] = tmp
print(list_final)
👁️
0 | 🔗 | 💖 | ✨ | 🌍 | ⌚
liên_kết=https://en.wikipedia.org/wiki/File:Bubble-sort-example-300px.gif|nhỏ|300x300px|**Một ví dụ về sắp xếp nổi bọt. Bắt đầu từ vị trí đầu tiên của danh sách (bên trái), so sánh các cặp số với nhau, nếu không đúng thứ tự nhỏ-lớn thì đảo
Trong khoa học máy tính và trong toán học, **thuật toán sắp xếp** là một thuật toán sắp xếp các phần tử của một danh sách (hoặc một mảng) theo thứ tự (tăng hoặc giảm).
**Đợt sắp xếp, sáp nhập đơn vị hành chính tại Việt Nam 2023–2030** đề cập đến cuộc sắp xếp, sáp nhập các đơn vị hành chính (ĐVHC) các cấp tại Việt Nam thực hiện trong
**Hà Nội** là thủ đô, là thành phố trực thuộc trung ương và cũng là một đô thị loại đặc biệt của nước Cộng hòa Xã hội chủ nghĩa Việt Nam. Hà Nội nằm về
Kết cấu khô của sản phẩm cung cấp cho tổ chức trung cho tóc làm cho nó mat.lợi ích: hành động mô hình nhẹ không bôi trơn tócCông thức là paraben miễn phí và không
Công dụng: cho kết cấu để tóc khô xác định một cách mạnh mẽ thêm không để lại dư lượng có cảm giác khô khi chạm vào tách cũng tócCông thức là paraben miễn phí
CỌ MẮT XẾP LỚP BEALY NO.06Cọ Mắt Xếp Lớp nằm trong series về Cọ Xếp Lớp - dòng sản phẩm bán chạy bậc nhất. Bealy cũng chính là nơi khai sinh ra dòng cọ xếp
CỌ MẮT XẾP LỚP BEALY NO.12Cọ Mắt Xếp Lớp nằm trong series về Cọ Xếp Lớp - dòng sản phẩm bán chạy bậc nhất. Bealy cũng chính là nơi khai sinh ra dòng cọ xếp
Bảo Nam Cosmetics – 1 thương hiệu sản phẩm đến từ quê trà Bảo Lộc,gồm các dòng sản phẩm làm đẹp từ thiên nhiên như Trà Xanh, Tinh Bột Nghệ, Tinh Bột Cám Gạo, Bột
CỌ MẮT XẾP LỚP BEALY NO.13Cọ Mắt Xếp Lớp nằm trong series về Cọ Xếp Lớp - dòng sản phẩm bán chạy bậc nhất. Bealy cũng chính là nơi khai sinh ra dòng cọ xếp
CỌ XẾP LỚP BEALY NO.02Cọ Phủ Phấn Xếp Lớp nằm trong series về Cọ Xếp Lớp - dòng sản phẩm bán chạy bậc nhất. Bealy cũng chính là nơi khai sinh ra dòng cọ xếp
CỌ MẮT XẾP LỚP BEALY NO.08Cọ Mắt Xếp Lớp nằm trong series về Cọ Xếp Lớp - dòng sản phẩm bán chạy bậc nhất. Bealy cũng chính là nơi khai sinh ra dòng cọ xếp
CỌ TÁN KEM NỀN XẾP LỚP BEALY NO.03Cọ Tán Kem Nền Xếp Lớp nằm trong series về Cọ Xếp Lớp - dòng sản phẩm bán chạy bậc nhất. Bealy cũng chính là nơi khai sinh
CỌ MÁ HỒNG XẾP LỚP BEALY NO.04Cọ Má Hồng Xếp Lớp nằm trong series về Cọ Xếp Lớp - dòng sản phẩm bán chạy bậc nhất. Bealy cũng chính là nơi khai sinh ra dòng
CỌ TẠO KHỐI XẾP LỚP BEALY NO.05Cọ Tạo Khối Xếp Lớp nằm trong series về Cọ Xếp Lớp - dòng sản phẩm bán chạy bậc nhất. Bealy cũng chính là nơi khai sinh ra dòng
CỌ MẮT XẾP LỚP BEALY NO.07Cọ Mắt Xếp Lớp nằm trong series về Cọ Xếp Lớp - dòng sản phẩm bán chạy bậc nhất. Bealy cũng chính là nơi khai sinh ra dòng cọ xếp
CỌ MÔI XẾP LỚP BEALY NO.14Cọ Môi Xếp Lớp nằm trong series về Cọ Xếp Lớp - dòng sản phẩm bán chạy bậc nhất. Bealy cũng chính là nơi khai sinh ra dòng cọ xếp
Bảo Nam Cosmetics – 1 thương hiệu sản phẩm đến từ quê trà Bảo Lộc,gồm các dòng sản phẩm làm đẹp từ thiên nhiên như Trà Xanh, Tinh Bột Nghệ, Tinh Bột Cám Gạo, Bột
CỌ MẮT XẾP LỚP BEALY NO.10Cọ Mắt Xếp Lớp nằm trong series về Cọ Xếp Lớp - dòng sản phẩm bán chạy bậc nhất. Bealy cũng chính là nơi khai sinh ra dòng cọ xếp
Orzbow bảo vệ góc cạnh Áp dụng cho trang trí nhà trẻ, trang trí phòng trẻ em, đổi mới sân chơi, bảo vệ an ninh gia đình sản phẩm Essential Sản phẩm sử dụng băng
Orzbow bảo vệ góc cạnh Áp dụng cho trang trí nhà trẻ, trang trí phòng trẻ em, đổi mới sân chơi, bảo vệ an ninh gia đình sản phẩm Essential Sản phẩm sử dụng băng
Orzbow bảo vệ góc cạnh Áp dụng cho trang trí nhà trẻ, trang trí phòng trẻ em, đổi mới sân chơi, bảo vệ an ninh gia đình sản phẩm Essential Sản phẩm sử dụng băng
Một sản phẩm an toàn phải có cho trẻ em và người lớn: Câu trả lời tốt nhất cho nhu cầu của cha mẹ bận rộn! Tại sao chọn chúng tôi?1> bọt cao su hấp
Công dụng của kim lăn trị sẹo ZGTS: – Kim lăn điều trị sẹo lõm có chứa gần 200 kim nhỏ và bén, giúp chích xuyên da đủ sâu (khỏang 2-3mm) vào trung bì để
**Bot** hay **robot mạng** là các ứng dụng phần mềm chạy các tác vụ tự động hóa trên mạng. Thông thường, bot thực hiện các tác vụ đơn giản và có cấu trúc lặp đi
phải|nhỏ| [[Xà phòng|Bọt xà phòng ]] **Bọt** là một vật thể được hình thành bằng cách nhốt các túi khí trong chất lỏng hoặc chất rắn. Một miếng bọt biển tắm và đầu trên một
Bài viết này là **danh sách các thuật toán** cùng một mô tả ngắn cho mỗi thuật toán. ## Thuật toán tổ hợp ### Thuật toán tổ hợp tổng quát * Thuật toán Brent: tìm
Bài này nói về từ điển các chủ đề trong toán học. ## 0-9 * -0 * 0 * 6174 ## A * AES * ARCH * ARMA * Ada Lovelace * Adrien-Marie Legendre *
Không chỉ nữ mà nam cũng có rất nhiều đồ dùng cá nhân luôn cần mang theo cho những chuyến du lịch, công tác,... Vì vậy Chodeal24h.vn xin giới thiệu đến các bạn nam Túi
là một loạt anime truyền hình thuộc thể loại chính kịch, lãng mạn, âm nhạc dựa trên ấn phẩm manga _Lời nói dối tháng Tư_ của tác giả Arakawa Naoshi do Ishiguro Kyōhei đạo diễn.
**Bột Hải** (, , ) là một vương quốc đa sắc tộc cổ của Triều Tiên tồn tại từ năm 698 đến 926 được lập ra bởi Đại Tộ Vinh (_Tae Choyŏng_) từ sau khi
Công dụng: cho kết cấu để tóc khô định nghĩa nó một cách mạnh mẽ không chứa nước để tăng sức chịu đựng tốt hơn trong khí hậu ẩm ướt không để lại dư lượng
Bảo Nam Cosmetics – 1 thương hiệu sản phẩm đến từ quê trà Bảo Lộc,gồm các dòng sản phẩm làm đẹp từ thiên nhiên như Trà Xanh, Tinh Bột Nghệ, Tinh Bột Cám Gạo, Bột
Bảo Nam Cosmetics– 1 thương hiệu sản phẩm đến từquê trà Bảo Lộc,gồm các dòng sản phẩm làm đẹp từ thiên nhiên như Trà Xanh, Tinh Bột Nghệ, Tinh Bột Cám Gạo, Bột Đậu Đỏ.....Bảo
Bảo Nam Cosmetics – 1 thương hiệu sản phẩm đến từ quê trà Bảo Lộc,gồm các dòng sản phẩm làm đẹp từ thiên nhiên như Trà Xanh, Tinh Bột Nghệ, Tinh Bột Cám Gạo, Bột
Bảo Nam Cosmetics – 1 thương hiệu sản phẩm đến từ quê trà Bảo Lộc,gồm các dòng sản phẩm làm đẹp từ thiên nhiên như Trà Xanh, Tinh Bột Nghệ, Tinh Bột Cám Gạo, Bột
Bảo Nam CosmeticsMatcha OolongMatcha oolonglà tên của một sản phẩm dạng bột được tinh chế từ lá trà xanh oolong. Và nói đến bột Matcha là nói đến văn hóa trà đạo tại Nhật Bản.Bột
Bảo Nam Cosmetics – 1 thương hiệu sản phẩm đến từ quê trà Bảo Lộc,gồm các dòng sản phẩm làm đẹp từ thiên nhiên như Trà Xanh, Tinh Bột Nghệ, Tinh Bột Cám Gạo, Bột
Bảo Nam Cosmetics – 1 thương hiệu sản phẩm đến từ quê trà Bảo Lộc,gồm các dòng sản phẩm làm đẹp từ thiên nhiên như Trà Xanh, Tinh Bột Nghệ, Tinh Bột Cám Gạo, Bột
Bảo Nam Cosmetics – 1 thương hiệu sản phẩm đến từ quê trà Bảo Lộc,gồm các dòng sản phẩm làm đẹp từ thiên nhiên như Trà Xanh, Tinh Bột Nghệ, Tinh Bột Cám Gạo, Bột
Bảo Nam Cosmetics– 1 thương hiệu sản phẩm đến từquê trà Bảo Lộc,gồm các dòng sản phẩm làm đẹp từ thiên nhiên như Trà Xanh, Tinh Bột Nghệ, Tinh Bột Cám Gạo, Bột Đậu Đỏ.....Bảo
Bảo Nam Cosmetics – 1 thương hiệu sản phẩm đến từ quê trà Bảo Lộc,gồm các dòng sản phẩm làm đẹp từ thiên nhiên như Trà Xanh, Tinh Bột Nghệ, Tinh Bột Cám Gạo, Bột
Bảo Nam Cosmetics– 1 thương hiệu sản phẩm đến từquê trà Bảo Lộc,gồm các dòng sản phẩm làm đẹp từ thiên nhiên như Trà Xanh, Tinh Bột Nghệ, Tinh Bột Cám Gạo, Bột Đậu Đỏ.....Bảo
Bảo Nam Cosmetics – 1 thương hiệu sản phẩm đến từ quê trà Bảo Lộc,gồm các dòng sản phẩm làm đẹp từ thiên nhiên như Trà Xanh, Tinh Bột Nghệ, Tinh Bột Cám Gạo, Bột
Túi nỉ đơn giản cho mẹ túi tã Túi đựng đồ du lịch tại nhà Túi Tã nỉ Bộ quà tặng hoàn hảo: Bộ sắp xếp bàn thay đổi đi kèm với kẹp núm vú
Siro ăn ngon Thiên vương An Vịlà sản phẩm hỗ trợ dành cho trẻ em bị biếng ăn, chậm lớn, kém hấp thu, không tăng cân hoặc tăng cân chậm, còi cọc. Sản phẩm được
SET SỎI NAIL TRANG TRÍ MÓNGSet sỏi nail, sỏi gắn móng- Sỏi vân đá là một trong những phụ kiện trang trí không thể thiếu trong ngành nail, được ưa chuộng tại các nước Hàn
Gel rửa mặt giải độc tinh chất sả hữu cơGarnier Organic Lemongrass Detox Gel Wash 150ml• Tăng cường với tinh dầu sả hữu cơ• Làm sạch bụi bẩn, dầu và ô nhiễm mà khônglàm khô
Mascara Essance dày và cong mi 10gVới thiết kế đầu cọ sáng tạo cùng công thức Volume-up cải tiến - Mascara Volume & Curl không trôi không lem mang lại hiệu ứng mi dày và
**Quận nội thị** (, ) là một phân cấp hành chính của một (thị) xã tại Pháp, được sử dụng đặc biệt tại ba thành phố lớn nhất là: Paris, Lyon và Marseille (mỗi thành