插入排序

#include <bits/stdc++.h>
using namespace std;
int main(){
	int a[]={7,4,8,9,2,6};
	for(int i=1;i<6;i++){
		for(int j=i;j>0;j--){
			    if(a[j]<a[j-1]){
					swap(a[j],a[j-1]);
			    }else{
			    	break;
				}
		}
	}
	for(int i=0;i<6;i++){
		cout<<a[i]<<" ";
	}
} 

基本思想:把一个要排序的数组划分为己排序和为排序的两部分

再从未排序部分逐个去除元素

把它和己排序元素进行比较

从右到左比较相邻的两个元素

如果右边的元素比左边的元素小

则交换两个元素,并向左继续比较和交换

否则就停止比较

按此处理为排序部分的所有元素

最终得到一个按升序排列的有序数组

这种算法也叫直接插入排序 




posted @ 2024-04-05 09:40  fushuxuan1  阅读(12)  评论(0)    收藏  举报