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

希尔排序

时间:2023-02-25 18:13:17浏览次数:36  
标签:sort temp int void 希尔 排序

//希尔排序
class ShellSort{
    public void sort(int[] a){
        int d,i,j,temp;
        for ( d = a.length/2; d >= 1; d=d/2) {
            for ( i = d; i <a.length ; i=i+d) {
                if (a[i]<a[i-d]){
                    temp = a[i];
                    for ( j = i-d; j>=0 && a[j] >temp ; j= j-d) {
                        a[j+d] = a[j];
                    }
                    a[j+d] = temp;
                }
            }
        }
    }
}
//哨兵版
class ShellSort{
    public void sort(int[] a){
        int d,i,j;
        for ( d = (a.length-1)/2; d >= 1; d=d/2) {
            for ( i = d+1; i <=a.length-1 ; i=i+d) {
                if (a[i]<a[i-d]){
                    a[0] = a[i];
                    for ( j = i-d; j>0 && a[j] >a[0] ; j= j-d) {
                        a[j+d] = a[j];
                    }
                    a[j+d] = a[0];
                }
            }
        }
    }
}

 

标签:sort,temp,int,void,希尔,排序
From: https://www.cnblogs.com/jixian/p/17154930.html

相关文章

  • 冒泡排序
    //冒泡排序classBubbleSort{publicvoidsort(int[]a){for(inti=0;i<a.length-1;i++){booleanflag=false;for......
  • 插入排序
    //插入排序classInsertSort{publicvoidsort(int[]a){inti,j,temp;for(i=1;i<a.length;i++){if(a[i]<a[i-1]){......
  • 【基础算法】简单排序-选择排序
    【基础算法】简单排序-选择排序将待排序数组分成有序部分和无序部分,无序部分初始长度为0,每次遍历有序部分,找到有序部分最小(最大)的数,和无序部分第一个数进行交换,使其变成有......
  • set的自定义排序
    看下面的代码就好了structcmp{ booloperator()(constpair<int,int>&a,constpair<int,int>&b)const{ intlena=a.second-a.first+1; intlenb=b.second-b.firs......
  • Java排序算法简介
    一、Java排序算法什么是排序算法排序算法是一种计算机算法,用于将一组数据按特定顺序排列。它们可以根据一个或多个关键字对数据进行排序,以便更容易查找和比较。常见的......
  • 【练习】不同排序算法执行时间比较
    插入:template<typenameDataType>voidinsert(DataTypeD[],intlength){DataTypekey;for(intj=2;j<length;j++){......
  • STATA:排序分类 序号
    //如果有变量ifoi则删除该变量,否则命令即结束,准备产生新变量ifoi,如果有则删除,没有则进行下一步capdropifoi//使用正则表达式//建立新变量ifoi,如果yjszyyq包含”经......
  • CF1463E. Plan of Lectures(拓扑排序+缩点)——Educational Codeforces Round 100 (Rate
    目录题意思路代码参考题意条件1:给定一颗树,每个结点必须在父节点之后出现条件2:给定k个特殊点对u,v,u的下一个结点必须是v现在要求出满足上述两个条件结点序列(每个结点有......
  • 算法刷题-数组排序(图算法、算法高阶)、螺旋矩阵(数组、矩阵)、分发糖果(贪心、数组)
    数组排序(图算法、算法高阶)编写一个JavaApplication程序,将随机生成的无序数组使用冒泡排序,将这个混乱的数组变成一个从小到大排列的有序的数组并输出。classdemo_sort......
  • 搜索EE场景排序链路升级
    作者:京东零售吕豪背景EE(Explore&Exploit)模块是搜索系统中改善生态、探索商品的重要链路,其目标是缓解数据马太效应导致模型对商品排序丰富性、探索性不足,带来的系统非最优......