图文网站源码北京营销策划有限公司
news/
2025/10/8 5:14:19/
文章来源:
图文网站源码,北京营销策划有限公司,河南住房和城乡建设部网站首页,行业关键词一览表插入排序
1. 算法思想#xff1a;
由数组下标为1 开始的数值作为判断依据#xff0c;与之前的数据从后往前比较定义tmp 暂存判断的数值#xff0c;若前面的数据大于tmp#xff0c;则将前面的数据向后移动 : arr[j1]arr[j]若对比的数据比tmp 大#xff0c;则往后移#…插入排序
1. 算法思想
由数组下标为1 开始的数值作为判断依据与之前的数据从后往前比较定义tmp 暂存判断的数值若前面的数据大于tmp则将前面的数据向后移动 : arr[j1]arr[j]若对比的数据比tmp 大则往后移产生空位若前面的数据小于判断数据tmp 则返回break在有序的基础上若遇到一个小于tmp 的则此数据以前都比当前数据小无判断意义在循环外将tmp 放入空位置 2. 代码实现
//直接插入排序
void InsertSort(int* arr, int len)//快速排序的输入格式
{//算法描述//从下标为1 的开始从后向前找若前比后大则交换位置for (int i 1; i len; i){int tmp arr[i];int j;for (j i - 1; j 0; j--){if (tmp arr[j]){arr[j1] arr[j];}elsebreak;}arr[j 1] tmp;}
} 3. 插入排序特性
时间复杂度O(n*n)空间复杂度O(1)特点约有序越快—时间复杂度O(n)具有稳定性 问题引入为什莫不能从前往后判断
//直接插入排序
void InsertSort(int* arr, int len)//快速排序的输入格式
{//for (int i 1; i len; i)//{// for (int j 0; j i; j)// {// if(arr[j]arr[i])// {// int tmp arr[j];// arr[j] arr[i];// arr[i] tmp;// // break;// }// }//}
} 希尔排序
1. 希尔排序算法思想
希尔排序是对直接插入排序的优化由其越有顺序越快的特点
将排序数组间隔分组分组用直接插入排序组内有序缩小分组再次排序,直到组数为1 2. 代码实现
//这是配置好的模板文件
#include iostream
#include string
using namespace std; void Shell(int* arr, int len, int d)
{for (int i 0; i len; i){int tmp arr[i];int j;for (j i - d; j 0; j - d){if (tmp arr[j]){arr[j d] arr[j];}elsebreak;}arr[j d] tmp;}
}
void Xier(int* arr, int len)
{int drr[] { 5,3,1 };int lendrr (sizeof(drr) / sizeof(drr[0]));for (int i 0; i lendrr; i){Shell(arr, len, drr[i]);//一趟希尔排序}
}
void Show(int* arr, int len)
{for (int i 0; i len; i){printf(%d , arr[i]);}printf(\n);
}
int main()
{int arr[] { 6,0,1,15,7,8,5,11,20,40,35 };Show(arr, sizeof(arr) / sizeof(arr[0]));Xier(arr, sizeof(arr) / sizeof(arr[0]));Show(arr, sizeof(arr) / sizeof(arr[0]));return 0;
} 3. 希尔排序特性
时间复杂度O(n1.3~n1.5次方)
空间复杂度O(1)
稳定性不稳定数据跳跃
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/931111.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!