Javapython希尔排序

    科技2025-08-28  13

    Java希尔排序 class XiEr{ public void sort(int[] arr) { int increment=arr.length; int temp,i,j; while(increment>1) {//对增量序列进行设置 increment=increment/3+1;//设置不同的增量 for(i=increment+1;i<arr.length;i++) { if(arr[i]<arr[i-increment]) {//arr[i]插入排序 temp=arr[i];//将值存起来 for(j=i-increment;j>0&&arr[j]>temp;j-=increment) { arr[j+increment]=arr[j]; } arr[j+increment]=temp; } } } } } public class XiEr_arrange { public static void main(String[] args) { int[] arr= {0,55,44,85,16,12,17,99,65};//设置下标为0的值为0 XiEr xier=new XiEr();//创建对象 xier.sort(arr); System.out.print("希尔排序后的结果为:"); for(int i=1;i<arr.length;i++) { System.out.print(arr[i]+" "); } } } Python实现希尔排序 def shellSort(arr):      n = len(arr)     gap = int(n/2)#设置增量     while gap > 0:          for i in range(gap,n):              temp = arr[i]              j = i              while  j >= gap and arr[j-gap] >temp:                  arr[j] = arr[j-gap]                  j -= gap              arr[j] = temp          gap = int(gap/2)     print(arr) if __name__=="__main__":     arr =[9,1,5,8,3,7,4,6,2]      shellSort(arr) 

     

    Processed: 0.008, SQL: 8