首页 > 代码库 > 插入排序
插入排序
一、原理:
插入排序是在一个序列A[0, ..., n-1]中,将从第i位(i >= 2)开始,将第i位插入到前面已排好顺序的序列A[0,... ,i-1]中,最终得到一个有序序列。
二、代码:
1 /*Sample Input: 2 5 3 3 4 5 1 2 4 5 Sample Output: 6 1 2 3 4 5 7 */ 8 9 #include<bits/stdc++.h> 10 using namespace std; 11 12 int main(int argc, char const *argv[]) 13 { 14 int t;//序列的长度 15 while(cin >> t && t){ 16 int arr[t]; 17 for(int i = 0; i < t; i++)cin >> arr[i]; 18 19 for(int i = 1; i < t; i++){ 20 int tmp = arr[i]; 21 int j = i; 22 23 while(j >= 1){ 24 if(arr[j-1] >= tmp){ 25 arr[j] = arr[j-1]; 26 j--; 27 } 28 else break; 29 } 30 arr[j] = tmp; 31 } 32 for(int i = 0; i < t; i++)cout << arr[i] << ‘ ‘; 33 cout << endl; 34 } 35 return 0; 36 }
三、分析
(1)最好的情况是O(n),即序列已经顺序排好的情况;
(2)最坏的情况是O(n^2),即序列逆序排列的情况。
//End
插入排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。