`
eyeName
  • 浏览: 5866 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Java的实现常用的排序冒泡排序,选择排序,插入排序,希尔(Shell)排序

阅读更多
public class SortAll {


   public static void main(String[] args) {  
    int[] i = { 1, 5, 6, 12, 4, 9, 3, 23, 39, 403, 596, 87 };  
    System.out.println("----冒泡排序的结果:");  
    maoPao(i);  
    System.out.println();  
    System.out.println("----选择排序的结果:");  
    xuanZe(i);  
    System.out.println();  
    System.out.println("----插入排序的结果:");  
    chaRu(i);  
    System.out.println();  
    System.out.println("----希尔(Shell)排序的结果:");  
    shell(i);  
   }   
   
   // 冒泡排序  
   public static void maoPao(int[] x) {  
    for (int i = 0; i < x.length; i++) {  
     for (int j = i + 1; j < x.length; j++) {  
      if (x[i] > x[j]) {  
       int temp = x[i];  
       x[i] = x[j];  
       x[j] = temp;  
      }  
     }  
    }  
    for (int i : x) {  
     System.out.print(i + " ");  
    }  
   }  
   
   // 选择排序  
   public static void xuanZe(int[] x) {  
    for (int i = 0; i < x.length; i++) {  
     int lowerIndex = i;  
     // 找出最小的一个索引  
     for (int j = i + 1; j < x.length; j++) {  
      if (x[j] < x[lowerIndex]) {  
       lowerIndex = j;  
      }
     }
     // 交换
        int temp = x[i];  
     x[i] = x[lowerIndex];  
     x[lowerIndex] = temp;  
    }  
    for (int i : x) {  
     System.out.print(i + " ");  
    }  
   }  
   
   // 插入排序  
   public static void chaRu(int[] x) {  
    for (int i = 1; i < x.length; i++) {// i从一开始,因为第一个数已经是排好序的啦  
     for (int j = i; j > 0; j--) {  
      if (x[j] < x[j - 1]) {  
       int temp = x[j];  
       x[j] = x[j - 1];  
       x[j - 1] = temp;  
      }  
     }  
    }  
    for (int i : x) {  
     System.out.print(i + " ");  
    }  
   }  
   
   // 希尔排序  
   public static void shell(int[] x) {  
    // 分组  
    for (int increment = x.length / 2; increment > 0; increment /= 2) {  
     // 每个组内排序  
     for (int i = increment; i < x.length; i++) {  
      int temp = x[i];  
      int j = 0;  
      for (j = i; j >= increment; j -= increment) {  
       if (temp < x[j - increment]) {  
        x[j] = x[j - increment];  
       } else {  
        break;  
       }  
      }  
      x[j] = temp;  
     }  
    }  
   
    for (int i : x) {  
     System.out.print(i + " ");  
    }  
}  
}
分享到:
评论

相关推荐

    java实现的排序算法

    冒泡排序,选择排序,插入排序,希尔(Shell)排序 Java的实现

    java数组排序示例(冒泡排序、快速排序、希尔排序、选择排序)

    java中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法(希尔排序(Shell Sort)是插入排序的一种),下面是一些示例,需要的朋友可以参考下

    java十大排序算法实现

    java十大排序算法实现 1. 冒泡排序(Bubble Sort) 2. 选择排序(Selection Sort) 3. 插入排序(Insertion Sort) 4. 快速排序(Quick Sort) 5. 归并排序(Merge Sort) 6. 堆排序(Heap Sort) 7. 计数排序...

    java数组排序源代码

    数组的排序源代码 一维或是二维数组 冒泡排序,选择排序,插入排序,希尔(Shell)排序 Java的实现

    java八大经典排序算法

    java写的八大经典排序算法(win7 jdk 1.6 下运行...冒泡排序 BubbleSort 堆排序 HeapSort 插入排序 InsSort 快速排序 QuickSort 归并排序 MergeSort 基数排序 BucketSort 简单选择排序 SelectSort 希尔排序 ShellSort

    多种排序方法实现的排序器

    //对顺序表作一趟希尔插入排序 for(int i = k + 1; i (); i ++){ list.getList()[0] = list.getList()[i];//暂存,不作哨兵 int j; for(j = i - k; j &gt; 0 && other.lower(list.getList()[0],list....

    数组常见排序

    6.*冒泡排序,选择排序,插入排序,希尔(Shell),快速排序排序Java的实现 */ 7.publicstaticvoidmain(String[]args){ 8.int[]i={1,5,6,12,4,9,3,23,39,403,596,87}; 9.System.out.println("----冒泡排序的结果:")...

    leetcode切割分组-java_algorithm:排序算法演示

    冒泡排序 SelectionSort 选择排序 InsertionSort 插入排序 平均时间复杂度 O(n (log n)^2) 空间复杂度 O(1) ShellSort 希尔排序 | 优化版插入排序;多轮步长缩小的方式,步长为 x = x * k + 1 每轮缩短的方式,如:...

    TheAlgorithms:基于Java 8的算法实现

    基于Java 8实现的代码片段集合,可以在之上的同步理解这些算法代码片段。博客地址: :fox:排序算法-排序 与排序相关的数据结构:优先权(二叉堆) 冒泡排序-BubbleSort | | 插入排序-InsertionSort | 插入排序优化...

    DataStructures:数据结构(JAVA&C++)

    冒泡排序 BubbleSort2 记录上一次冒泡终止位置,下一轮对其之后元素进行忽略 1.1 高级排序(时间复杂度 = O(nlogn)) 问题 备注 代码 ShellSort 希尔排序 Java MergeSort 归并排序 Java MergeSort2 1,小规模数据直接...

    java8stream源码-component:Java的各种组件使用的demo,如fastjson、httpclient、jsoup、zoo

    冒泡排序: BubbleSort(重复比较相邻的两个值) 执行时间超时 归并排序:MergeSort (是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后...

    Sort-Algorithm

    Sort-Algorithm QuickSort 快速排序 InsertSort 插入排序 MergeSort 归并排序 BubbleSort 冒泡排序 SelectSort 选择排序 ShellSort 希尔排序

Global site tag (gtag.js) - Google Analytics