#include <iostream>
using namespace std;
int a[]={100,60,70,50};
int n=4;
//非递减排序
int main(){
//第一个元素是有序的
int temp;
int i,j;
for(i=1;i<n;i++){
//如果前面的元素更大
if(a[i]<a[i-1]){
//保存当前元素,防止移动元素导致当前数据丢失
temp=a[i];
//从当前元素的前一个元素开始往后移动,前面覆盖后面
//注意跳出条件
for(j=i-1;j>=0&&a[j]>temp;j--){
a[j+1]=a[j];
}
//一直移动到小于或等于当前元素的位置
//该位置的后面一个位置就是插入的位置
a[j+1]=temp;
}
}
//输出
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
return 0;
}
直接插入排序
于 2024-07-25 22:05:23 首次发布