DS内排—直插排序

题目描述

给定一组数据,使用直插排序完成数据的升序排序。

--程序要求--

若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio

程序中若include多过一个头文件,不看代码,作0分处理

不允许使用第三方对象或函数实现本题的要求

输入

数据个数n,n个数据

输出

直插排序的每一趟排序结果

样例输入

7 34 23 677 2 1 453 3

样例输出

23 34 677 2 1 453 3 23 34 677 2 1 453 3 2 23 34 677 1 453 3 1 2 23 34 677 453 3 1 2 23 34 453 677 3 1 2 3 23 34 453 677

提示

#include<iostream>
using namespace std;
#define INF 0x7f
int n;
void printarray(int *array)
{
    for(int i=0;i<n;i++)
    {
        if(i!=n-1)
            cout<<array[i]<<" ";
        else
            cout<<array[i]<<endl;
    }
}
void Insertsort(int *array)
{
    int i,j,temp;
    for(i=1;i<n;i++)
    {///第一个元素已经放入作为已排序序列的第一个元素
        temp=array[i];///依次取出未排序序列的第一个元素
        for(j=i;j>=1&&array[j-1]>temp;j--)
        {///依次与已排序序列中元素比较并右移
            array[j]=array[j-1];
        }
        array[j]=temp;///此时j处腾空,放入待排序元素
        printarray(array);
    }
}

int main()
{
    cin>>n;
    int *array=new int[n];
    for(int i=0;i<n;i++)
        cin>>array[i];
    Insertsort(array);
    delete []array;
    return 0;
}

原文地址:https://www.cnblogs.com/SZU-DS-wys/p/12183070.html

时间: 2024-07-31 03:41:56

DS内排—直插排序的相关文章

常用直插封装

protel元件封装总结(Protel99se) 零件封装是指实际零件焊接到电路板时所指示的外观和焊点的位置.是纯粹的空间概念因此不同的元件可共用同一零件封装,同种元件也可有不同的零件封装. 电阻 AXIAL 无极性电容 RAD  电解电容 RB-  电位器 VR  二极管 DIODE  三极管 TO  电源稳压块78和79系列 TO-126H和TO-126V  场效应管 和三极管一样  整流桥 D-44 D-37 D-46  单排多针插座 CON SIP  双列直插元件 DIP  晶振 XTA

插入类排序:直插,折半插,希尔

插入类排序: 1:直接插入排序O(n^2) 2:折半插入排序O(n^2) 3:希尔排序 O(n乘以log以2为底,n的对数) 空间复杂度都是O(1) //直接插入排序 void InsertSort(int R[],int n) { int i,j; int tmp; for(i=1;i<n;i++)//数组下标从0开始,第一个有序,所以从1开始 { tmp=R[i]; j=i-1; while(j>=0 && tmp<R[j])//元素右移,以便插入 { R[j+1]=

常见直插、贴片封装

一.直插式封装 直插式封装(DIP),晶体管外形封装(TO),插针网格阵列封装(PGA) 二.表面贴装式 晶体管外形封装(D-PAK),小外形封装(SOP),方形扁平封装(QFP),塑封有引线芯片载体(PLCC) 备注: TO : Transistor out-line ,例:TO-252 表面贴装 TO-220,TO-126直插式封装 -PAK : 这种封装的MOSFET有3个电极,其中漏极引脚被剪断不用,而是使用背面的散热板作为漏极 SOT : Small out-line Transist

DS内排—2-路归并排序

题目描述 输入一组字符串,用2-路归并排序按字典顺序进行降序排序. 输入 测试次数t 每组测试数据:数据个数n,后跟n个字符串,字符串不含空格. 输出 对每组测试数据,输出2-路归并排序的每一趟排序结果.每组测试数据的输出之间有1空行. 样例输入 2 6 shenzhen beijing guangzhou futian nanshan baoan 10 apple pear peach grape cherry dew fig haw lemon marc 样例输出 shenzhen beij

1.5KE6.8CA直插TVS二极管,为敏感电子设备保驾护航

在电子电路中,为了免受雷击或其他瞬态电压事件引起的瞬态电压影响,电子工程师往往会选用TVS瞬态抑制二极管专门用于保护敏感电子设备.1.5KE系列TVS管,应用范围极其广泛,使用频率高.那么,关于1.5KE瞬态抑制二极管,您知道多少呢?哪家生产的TVS二极管1.5KE6.8CA好呢? 以专业的保护器件供应厂商东沃电子自主研发.生产.销售的TVS二极管1.5KE系列为例:? 10/1000μs波形时的峰值脉冲功率为1500W,重复频率(工作循环):0.01%? DO-201包装内有钝化玻璃芯片接合点

DS排序--希尔排序

题目描述 给出一个数据序列,使用希尔排序算法进行降序排序. 间隔gap使用序列长度循环除2直到1 输入 第一行输入t,表示有t个测试示例第二行输入n,表示第一个示例有n个数据(n>1)第三行输入n个数据,都是正整数,数据之间用空格隔开以此类推 输出 对每组测试数据,输出每趟排序结果.不同组测试数据间用空行分隔. 样例输入 2 6 111 22 6 444 333 55 8 77 555 33 1 444 77 666 2222 样例输出 444 333 55 111 22 6 444 333 1

排序算法的复杂度、稳定性比较

常用排序算法 类型 排序方法 时间复杂度 辅助空间 稳定性 平均时间 最好时间 最坏时间 插入排序 直插排序 O(n^2) O(n) O(n^2) O(1) 稳定 希尔排序 O(n^1.5) O(n) O(n^1.5) O(1) 不稳定 选择排序 选择排序 O(n^2) O(n^2) O(n^2) O(1) 不稳定 堆排序 O(nlog2n) O(nlog2n) O(nlog2n) O(1) 不稳定 交换排序 冒泡排序 O(n^2) O(n) O(n^2) O(1) 稳定 快速排序 O(nlog

希尔排序JAVA代码

package 备份类; public class 希尔直插排序 { public static void main(String[] args) { int[] a = new int[] { 9, 8, 7, 6, 5, 4, 3, 2, 1, 10 }; print(a); shellSort(a); print(a); } public static void shellSort(int[] a) { int d = 3;// 增量 int gap = 1;// 间距 // 计算出最大的

Java常见的几种排序算法-插入、选择、冒泡、快排、堆排等

本文就是介绍一些常见的排序算法.排序是一个非常常见的应用场景,很多时候,我们需要根据自己需要排序的数据类型,来自定义排序算法,但是,在这里,我们只介绍这些基础排序算法,包括:插入排序.选择排序.冒泡排序.快速排序(重点).堆排序.归并排序等等.看下图: 给定数组:int data[] = {9,2,7,19,100,97,63,208,55,78} 一.直接插入排序(内部排序.O(n2).稳定) 原理:从待排序的数中选出一个来,插入到前面的合适位置. [java] view plain copy