Khiêu chuyển đáo nội dung

Sáp nhập bài tự

本页使用了标题或全文手工转换
Duy cơ bách khoa, tự do đích bách khoa toàn thư
Sáp nhập bài tự
Sử dụng sáp nhập bài tự vi nhất liệt sổ tự tiến hành bài tự đích quá trình
Khái huống
Loại biệtBài tự toán pháp
Tư liêu kết cấuSổ tổ
Phục tạp độ
Bình quân thời gian phục tạp độ
Tối phôi thời gian phục tạp độ
Tối ưu thời gian phục tạp độ
Không gian phục tạp độTổng cộng,Nhu yếu phụ trợ không gian
Tối giai giảiNo
Tương quan biến lượng đích định nghĩa
Sử dụng sáp nhập bài tự vi nhất liệt sổ tự tiến hành bài tự đích quá trình

Sáp nhập bài tự( anh ngữ:Insertion Sort) thị nhất chủng giản đan trực quan đíchBài tự toán pháp.Tha đích công tác nguyên lý thị thông quá cấu kiến hữu tự tự liệt, đối vu vị bài tự sổ cư, tại dĩ bài tự tự liệt trung tòng hậu hướng tiền tảo miêu, trảo đáo tương ứng vị trí tịnh sáp nhập.Sáp nhập bài tựTại thật hiện thượng, thông thường thải dụng in-place bài tự ( tức chỉ nhu dụng đáoĐích ngạch ngoại không gian đích bài tự ), nhân nhi tại tòng hậu hướng tiền tảo miêu quá trình trung, nhu yếu phản phục bả dĩ bài tự nguyên tố trục bộ hướng hậu na vị, vi tối tân nguyên tố đề cung sáp nhập không gian.

Ký tái

[Biên tập]

Tối tảo ủng hữu bài tự khái niệm đích cơ khí xuất hiện tại 1901 chí 1904 niên gian doHách nhĩ mạn · hà nhạc lễPhát minh xuất sử dụng cơ sổ bài tự pháp đích phân loại cơ, thử cơ khí hệ thống bao quát đả khổng, chế biểu đẳng công năng, 1908 niên phân loại cơ đệ nhất thứ ứng dụng ô nhân khẩu phổ tra, tịnh thả tại lưỡng niên nội hoàn thành liễu sở hữu đích phổ tra sổ cư hòa quy đương. Hách nhĩ mạn · hà nhạc lễTại 1896 niên sang lập đích phân loại cơ công tư đích tiền thân, viĐiện não chế biểu ký lục công tư ( CTR ).Tha tại điện não chế biểu ký lục công tư tằng đam nhậm cố vấn công trình sư, trực đáo 1921 niên thối hưu, nhi điện não chế biểu ký lục công tư tại 1924 niên chính thức cải danh viIBM.

Khái thuật

[Biên tập]

Insertion Sort hòa đả phác khắc bài thời, tòng bài trác thượng trục nhất nã khởi phác khắc bài, tại thủ thượng bài tự đích quá trình tương đồng.

Cử lệ:

Thâu nhập: {5 2 4 6 1 3}.

Thủ tiên nã khởi đệ nhất trương bài, thủ thượng hữu {5}.

Nã khởi đệ nhị trương bài 2, bả 2 insert đáo thủ thượng đích bài {5}, đắc đáo {2 5}.

Nã khởi đệ tam trương bài 4, bả 4 insert đáo thủ thượng đích bài {2 5}, đắc đáo {2 4 5}.

Dĩ thử loại thôi.

Toán pháp

[Biên tập]

Nhất bàn lai thuyết,Sáp nhập bài tựĐô thải dụng in-place tại sổ tổ thượng thật hiện. Cụ thể toán pháp miêu thuật như hạ:

  1. Tòng đệ nhất cá nguyên tố khai thủy, cai nguyên tố khả dĩ nhận vi dĩ kinh bị bài tự
  2. Thủ xuất hạ nhất cá nguyên tố, tại dĩ kinh bài tự đích nguyên tố tự liệt trung tòng hậu hướng tiền tảo miêu
  3. Như quả cai nguyên tố ( dĩ bài tự ) đại vu tân nguyên tố, tương cai nguyên tố di đáo hạ nhất vị trí
  4. Trọng phục bộ sậu 3, trực đáo trảo đáo dĩ bài tự đích nguyên tố tiểu vu hoặc giả đẳng vu tân nguyên tố đích vị trí
  5. Tương tân nguyên tố sáp nhập đáo cai vị trí hậu
  6. Trọng phục bộ sậu 2~5

Phạm lệ trình thức mã

[Biên tập]

Thử phạm lệ trình tự dĩC ngữ ngônThật hiện.[1]

voidinsertion_sort(intarr[],intlen){
inti,j,key;
for(i=1;i!=len;++i){
key=arr[i];
j=i-1;
while((j>=0)&&(arr[j]>key)){
arr[j+1]=arr[j];
j--;
}
arr[j+1]=key;
}
}

Thử phạm lệ trình tự dĩObjective CThật hiện.[1]

-(NSMutableArray*)insertionSort:(NSArray*)array{
NSMutableArray*sortArray=[arraymutableCopy];
NSNumber*key=@(0);
intj=0;
for(inti=1;i<sortArray.count;i++){
key=array[i];
j=i-1;
while((j>=0)&&[sortArray[j]integerValue]>[keyintegerValue]){
sortArray[j+1]=sortArray[j];
j--;
}
sortArray[j+1]=key;
}
returnsortArray;
}
# Julia Sample: InsertSort
functionInsertSort(A)
fori=2:length(A)
key=A[i]
j=i-1
while(j>=1)&&(A[j]>key)
A[j+1]=A[j]
j-=1
end
A[j+1]=key
end
returnA
end

# Main Code
A=[16,586,1,31,354,43,3]
println(A)# Original Array
println(InsertSort(A))# Insert Sort Array

Toán pháp phục tạp độ

[Biên tập]

Như quả mục tiêu thị bả n cá nguyên tố đích tự liệt thăng tự bài liệt, na ma thải dụngSáp nhập bài tựTồn tại tối hảo tình huống hòa tối phôi tình huống. Tối hảo tình huống tựu thị, tự liệt dĩ kinh thị thăng tự bài liệt liễu, tại giá chủng tình huống hạ, nhu yếu tiến hành đích bỉ giác thao tác nhuThứ tức khả. Tối phôi tình huống tựu thị, tự liệt thị hàng tự bài liệt, na ma thử thời nhu yếu tiến hành đích bỉ giác cộng hữuThứ.Sáp nhập bài tựĐích phú trị thao tác thị bỉ giác thao tác đích thứ sổ giảm khứThứ, ( nhân viThứ tuần hoàn trung, mỗi nhất thứ tuần hoàn đích bỉ giác đô bỉ phú trị đa nhất cá, đa tại tối hậu na nhất thứ bỉ giác tịnh bất đái lai phú trị ). Bình quân lai thuyếtSáp nhập bài tựToán pháp phục tạp độ vi.Nhân nhi,Sáp nhập bài tựBất thích hợp đối vu sổ cư lượng bỉ giác đại đích bài tự ứng dụng. Đãn thị, như quả nhu yếu bài tự đích sổ cư lượng ngận tiểu, lệ như, lượng cấp tiểu vu thiên; hoặc giả nhược dĩ tri thâu nhập nguyên tố đại trí thượng án chiếu thuận tự bài liệt, na maSáp nhập bài tựHoàn thị nhất cá bất thác đích tuyển trạch. Sáp nhập bài tự tại công nghiệp cấp khố trung dã hữu trứ quảng phiếm đích ứng dụng, tại STL đích sort toán pháp hòa stdlib đích qsort toán pháp trung, đô tương sáp nhập bài tự tác vi khoái tốc bài tự đích bổ sung, dụng vu thiếu lượng nguyên tố đích bài tự ( thông thường vi 8 cá hoặc dĩ hạ ).

Tham khảo văn hiến

[Biên tập]
  1. ^1.01.1Cormen, Thomas H.(Anh ngữ:Thomas H. Cormen);Leiserson, Charles E.(Anh ngữ:Charles E. Leiserson);Rivest, Ronald L.;Stein, Clifford.Section 2.1: Insertion sort.Introduction to Algorithms3rd. MIT Press and McGraw-Hill. 2009: 16–18 [1990].ISBN0-262-03384-4..

Diên thân duyệt độc

[Biên tập]