直接插入

#include<stdio.h>
int main()
{
    int arr[11] = { 0,25,12,36,45,2,9,39,22,98,37 };
    int i, j, k;
    for (k = 1; k < 11; k++)
    {
        printf("%d\t", arr[k]);

    }
    printf("\n");
    for (i = 2; i <= 10; i++)
    {
        arr[0] = arr[i];
        printf("a[0]%d\t\n", arr[0]);
        j = i - 1;
        while (arr[0] < arr[j])
        {

            arr[j + 1] = arr[j];
            printf("a[j+1]%d=a[j]%d\t", arr[j+1],arr[j]);
            j--;
            }    printf("\n");
        for (k = 1; k < 11; k++)
        {
            printf("%d\t", arr[k]);

        }    printf("\n");
        arr[j + 1] = arr[0];
    }
    printf("\n");
    for (k = 1; k < 11; k++)
    {
        printf("%d\t", arr[k]);

    }
    return 0;
}
时间: 2024-11-10 15:03:10

直接插入的相关文章

c语言--直接插入算法

插入排序是排序算法的一种,它不改变原有的序列(数组),而是创建一个新的序列,在新序列上进行操作. 这里以从小到大排序为例进行讲解. 插入排序的基本思想是,将元素逐个添加到已经排序好的数组中去,同时要求,插入的元素必须在正确的位置,这样原来排序好的数组是仍然有序的. 在实际使用中,通常是排序整个无序数组,所以把这个无序数组分为两部分排序好的子数组和待插入的元素: 第一轮时,将第一个元素作为排序好的子数组,插入第二个元素: 第二轮,将前两个元素作为排序好的数组,插入第三个元素: 以此类推,第i轮排序

Java学习资料-Java常用算法-直接插入算法

SortAscending源程序public class SortAscending { public SortAscending () {  System.out.println("直接插入排序法"); } public static int[] sortAscending(int[] with) { // 直接插入法递增排序  int length = with.length;      // 待排数组的长度  int[] temp = new int[length];    //

插入排序(直接插入,折半插入,希尔)

1 查看各个项目的Project ID编号 mysql -uroot -h10.10.2xx.xx show databases; use bugfree2; desc bf_TestProject; select ProjectID,ProjectName from bf_TestProject;(查询结果如下) 2 在/var/www/html/bugfree/BugFile路径下创建文件夹 mkdir Project2  Project3  Project4  Project5  Proj

Java直接插入算法

直接插入算法是将N个带排序的元素看做成一个有序表和一个无序表. 每次从无序表中取一个元素和有序表比较,重复N-1次完成排序. 直接上代码: 1 package test; 2 3 public class Test { 4 public static void main(String[] args) { 5 int[] data = new int[] { 23, 1, 5, 7, 45, 26, 77, 3, 2 }; 6 showArray(data); 7 sortArray(data);

八大内部排序算法(上)-冒泡、直接插入、简单选择、快速

八大内部排序算法(上)冒泡.直接插入.简单选择.快速 排序分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序. 1.直接插入排序 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表.即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止. 要点:设立哨兵,作为临时存储和判断数组边界之用. 直接插入实现如下:

8大排序算法-我熟知(冒泡、直接插入)

分类: 1)插入排序(直接插入排序.希尔排序)2)交换排序(冒泡排序.快速排序)3)选择排序(直接选择排序.堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序. 1.冒泡算法(bubble)-  -属于交换排序 -- --o(n^2) 两两相邻元素比较,不符合就交换.直到最后没有可交互的元素.一趟排序下来,最大的元素在尾部,越小的元素会经由交换慢慢"浮"到数列的顶端. 冒泡排序算法的运

排序---直接插入

#include<iostream> using namespace std; #define SIZE 21 typedef int Sqlist[SIZE]; void InsretSort(Sqlist &L,int n) { for(int i=2;i<n;++i) { L[0] = L[i]; for(int j=i;L[0] < L[j-1];--j) { L[j] = L[j-1]; } L[j] = L[0]; } } void main() { Sqlis

[C语言] 插入排序之直接插入的特性及实现

[C语言] 插入排序之直接插入的特性及实现 1.算法特性 直接插入是一种简单.稳定的插入排序方法,其时间复杂度最好为O(n).最差为O(n2).平均为O(n2),空间复杂度为O(1). 2.算法思路: 以升序排列为例,先设置一个临时变量存储将要移动的插入值,再将其与其之前的数据从后往前依次进行比较.当比较值比插入值大时,比较值后移一位,插入值继续向前检索:当比较值小于等于插入值时,插入值插入比较值的后一位.经过一轮循环便可以将所有数据排列有序. 3.实现代码 1 #include <stdio.

Typescript骚操作,在TS里面直接插入HTML

Typescript骚操作,在TS里面直接插入HTML,还有语法提示 先给大家看一个图 因为我不喜欢用很重的框架,主要是并非专业UI,但是偶尔会用到,还是觉得直接element组装受不了,想想能在ts文件里面能直接插入html就好了. 插进去不难,可是苦于没有语法提示,大家看上面这个图,语法提示的问题已经解决了. 下面我来详细讲解一下这个骚操作 一.安装vscode,别的工具我没研究,大差不差 二.安装插件 是由这个插件提供的语法高亮 三.添加两个函数 export function raw(a