首页 > 其他分享 >希尔排序

希尔排序

时间:2024-04-20 09:33:28浏览次数:21  
标签:include int double 希尔 序列 排序

#include <iostream>
#include <cmath>
using namespace std;
int main(){
    int n;
    cin>>n;
    int a[n+5];
    for(int i = 0;i<n;i++){
        cin>>a[i];
    }
    for(double i = n;i>1;){
        i=round(i/2);
        for(int j=0;j+i<n;j++){
            if(a[j]>a[j+(int)i]){
                swap(a[j],a[j+(int)i]);
            }
        }
    }
    for(int i = 0;i<n;i++){
        cout<<a[i]<<endl;
    }
    return 0;
}

基本思想:

将i设为输入序列的项数,每次除以2(i为差值)(double类型四舍五入)。

每次将j=0,将序列的第j项与序列的第j+i比较进行交换,直到i为1。

标签:include,int,double,希尔,序列,排序
From: https://www.cnblogs.com/wangyihang-xh/p/18147217

相关文章

  • 希尔排序
    #include<bits/stdc++.h>usingnamespacestd;intmain(){ stringa="liuyixing"; for(doublei=9;i>1;){ i=round(i/2); for(intj=0;j+i<9;j++){ if(a[j]>a[j+(int)i]){ swap(a[j],a[j+(int)i]); } } } for(inti=0;i<......
  • JZ33 二叉排序树的后序遍历序列
    classSolution{public://判断该数组是不是某二叉搜索树的后序遍历的结果。//如果是则返回true,否则返回false//注意传入参数是一个int类型的vector容器boolVerifySquenceOfBST(vector<int>sequence){if(sequence.empty()) //二叉树......
  • el-table实现自定义排序事件
    说明在项目开发中,需求有时会需要通过调取接口去实现表格数据排序。实现要点在el-table-column中定义sortable="custom"属性在el-table中定义@sort-change="自定义排序事件"代码...<el-table:data="list"@sort-change="handleSort"ref="tableRef">......
  • LinkedHashMap排序
    importjava.util.LinkedHashMap;importjava.util.Map;importjava.util.TreeMap; publicclassSortLinkedHashMapByKey{publicstaticvoidmain(String[]args){//创建一个LinkedHashMapLinkedHashMap<Integer,String>linkedHashMap=newLinkedHashMap<......
  • JZ36二叉树排序树与双向链表
    /*structTreeNode{ intval; structTreeNode*left; structTreeNode*right; TreeNode(intx): val(x),left(NULL),right(NULL){ }};*/#include<cstddef>classSolution{public: TreeNode*ans=nullptr; //最终的链表 TreeNode*pre=nullptr; ......
  • 排序
    排序算法直接插入折半插入冒泡排序简单选择排序快速排序堆排序实现以及使用c++#include<iostream>#include<algorithm>#include<queue>usingnamespacestd;voidhalf_insert_sort(intnums[],intsize){ //将新数字插入到有序数组中 //使用折半查找寻找插入......
  • 06-排序 分页 过滤
    排序查询多条和全部才会用到排序排序关键字:ordering查询字符串查询字符串(QueryString)是指在URL中以问号(?)开始的部分,用于向服务器传递参数。它由一个或多个键值对组成,每个键值对之间用&符号分隔。例如,在以下URL中,查询字符串是?page=2&category=books:在django种如......
  • C++排序问题
    冒泡排序若得到一个从小到大的数组例如:3527481角标:1234567就是角标1和角标2比,若1大于2,就交换位置,然后角标2和角标3比,若2大于3,就交换位置第一趟:3254718第二趟:2345178以此类推。。。。点击查看代码#include<bits/stdc++.h>usingnamespaces......
  • drf之认证、权限、频率控制、排序、过滤、分页
    【认证】models.py1fromdjango.dbimportmodels234#Createyourmodelshere.5classUser(models.Model):6username=models.CharField(max_length=50)7password=models.CharField(max_length=50)8user_type=models.IntegerFiel......
  • js带注释的冒泡排序算法
    一、简述冒泡排序(BubbleSort)是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果二者的顺序(如从大到小、首字母从A到Z)错误就交换。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法......