带哨兵的直接插入排序法
来源:互联网 发布:怎样选淘宝上的人参 编辑:程序博客网 时间:2024/04/28 15:06
/*--------------------------------------------------------------------------------------------
带哨兵的直接插入排序法
排序原理:其实也属于插入法类型,分已排序和未排序部分,只不过初次把
第二个元素当作已排好序部分.牺牲数组的第一个元素作为监视
哨兵,作用类似于直接插入法排序中的temp,用哨兵的作用是可
以避免检查时可能出现数组越界的情况,比如数组下表可能出现
小于0的数值(如-1).
-------------------------------------------------------------------------------------------*/
带哨兵的直接插入排序法
排序原理:其实也属于插入法类型,分已排序和未排序部分,只不过初次把
第二个元素当作已排好序部分.牺牲数组的第一个元素作为监视
哨兵,作用类似于直接插入法排序中的temp,用哨兵的作用是可
以避免检查时可能出现数组越界的情况,比如数组下表可能出现
小于0的数值(如-1).
-------------------------------------------------------------------------------------------*/
#include<stdio.h>void With_Sentry_Sort(int ar[],int len);int main(void){int i,n;puts("Input the number of elements to the array:");scanf("%d",&n);int ar[n];puts("Input n numbers:");for(i=0;i<n;i++) //读取数组元素scanf("%d",&ar[i]);With_Sentry_Sort(ar,n); printf("ar[%d] = ",n);for(i=0;i<n;i++) //逐个打印数组元素 printf("%d ",ar[i]); putchar('\n');return 0;}void With_Sentry_Sort(int ar[],int len)//带哨兵排序{int i,j,temp;for(i=2;i<len;i++){ar[0]=ar[i]; //数组的第一个元素用来做监视哨兵for(j=i-1;ar[j]>ar[0];j--) //插入排序法,当j减小到0时便会跳出循环,不会出现j<0的情况{ar[j+1]=ar[j];ar[j]=ar[0];}}}
- 带哨兵的直接插入排序法
- (带哨兵)直接插入排序
- 带哨兵的插入排序
- 八种排序算法Java实现-直接插入和带哨兵的插入排序
- 带哨兵与不带哨兵的插入排序
- 直接插入排序的哨兵的作用
- 十二.C语言8种排序算法及其实现 1.希尔排序 2.二分插入法 3.直接插入法 4.带哨兵的直接排序法 5.冒泡排序 6.选择排序 7.快速排序 8.堆排序
- C语言8种排序算法及其实现 1.希尔排序 2.二分插入法 3.直接插入法 4.带哨兵的直接排序法 5.冒泡排序 6.选择排序 7.快速排序 8.堆排序
- 直接插入排序 解释哨兵的好例子
- 直接插入排序(哨兵和越界)
- 【数据结构】直接插入排序_哨兵位
- 直接插入排序算法-设置哨兵版
- 直接插入排序算法-不设置哨兵版
- 插入排序及哨兵的作用
- 直接插入排序法
- 直接插入排序法
- 直接插入排序法
- 直接插入法排序
- ACM-ICPC 2012 长春. 正式赛及收工 (47张照片,外链)
- 菜鸟程序员的半年成长经历
- U-boot commands
- 一些iOS高效开源类库
- 回家
- 带哨兵的直接插入排序法
- Android系统自带样式(android:theme)
- SQLServer null注意!
- link
- HDOJ 1007 (分治法)
- JavaScript世界的一等公民 - 函数
- Fedora 14(linux)下 Intel 核心显卡驱动安装说明
- 闹钟
- 如何添加图片到iOS模拟器(iOS Simulator)