`
高级java工程师
  • 浏览: 410879 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java实现、冒泡、插入、选择、哈希排序

阅读更多
package bean;
public class SortAll{
/** 
  * 冒泡排序,选择排序,插入排序,希尔(Shell)排序 Java的实现  
  * 2008.11.09 
  * @author YangL. (http://www.idcn.org) 
  */ 

          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 + " ");  
  }  
}  
 
// 选择排序  
[color=cyan]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 + " ");  
  }  
}   [/color]  
// 插入排序  
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 + " ");  
  }  
}  



   //图附件
  • 大小: 13.3 KB
分享到:
评论

相关推荐

    java排序算法插入选择冒泡

    java排序算法java排序算法插入选择冒泡java排序算法插入选择冒泡

    各种排序算法java实现

    Java中实现冒泡排序的关键在于嵌套循环,外层循环控制遍历次数,内层循环进行元素比较和交换。 2. **选择排序**: 选择排序每次找出未排序部分的最小(或最大)元素,然后将其与未排序部分的第一个元素交换。在...

    Java实现遍历、排序、查找算法及简要说明.docx

    此外,文档还提到了其他排序算法,如冒泡排序、选择排序、快速排序、归并排序、堆排序、计数排序和桶排序等,虽然没有提供具体代码,但这些都是常见的排序算法,各有其适用场景和性能特点。 3. **查找算法**: - ...

    冒泡、快速(递归、非递归、及递归改进)、希尔、哈希

    **冒泡排序**是一种简单的排序方法,通过重复遍历待排序的序列,比较相邻元素并根据需要交换它们来实现排序。它的主要思想是每次遍历时让最大的元素“浮”到序列的末尾,直到整个序列有序。冒泡排序的时间复杂度为O...

    用Java实现基础数据结构,排序算法、经典算法以及leetcode刷题记录_Java_下载.zip

    在本压缩包“用Java实现基础数据结构,排序算法、经典算法以及leetcode刷题记录_Java_下载.zip”中,包含的资源主要是关于Java编程语言实现的数据结构、排序算法、经典算法以及LeetCode刷题的代码实现。这些是计算机...

    Java数据结构和算法.pdf

    * 简单排序包括冒泡排序、选择排序、插入排序等。 * 冒泡排序的思想是假设有 N 个数据需要排序,则从第0 个数开始,依次比较第0 和第 1 个数据,如果第 0 个大于第 1 个则两者交换,否则什么动作都不做,继续比较第1...

    数据结构常考知识点(java实现版)

    此外,还可以实现冒泡排序、插入排序、选择排序、快速排序、归并排序等经典排序算法。 9. 查找算法: 包括线性查找、二分查找等。二分查找通常应用于已排序的列表,Java的binarySearch()方法可以实现。 10. 动态...

    经典算法Java实现

    1. 冒泡排序:基础排序算法,通过不断交换相邻的逆序元素来逐步理顺数组。 2. 插入排序:将元素逐个插入到已排序部分,保持有序状态。 3. 选择排序:找到最小(或最大)的元素与当前位置交换,直到所有元素排序完成...

    常用数据结构及其算法的Java实现

    排序是数据结构中的重要部分,包括冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等。每种排序算法都有其适用场景,了解它们的原理和性能有助于选择合适的排序方法。 10. 查找算法 查找算法包括顺序...

    各种算法的java实现

    1. **排序算法**:排序是数据处理的基础,Java提供了多种内置排序方法,如Arrays.sort(),但理解并实现基础排序算法如冒泡排序、插入排序、选择排序、快速排序、归并排序和堆排序,可以帮助你更好地理解其工作原理和...

    java-数据结构代码实现

    8. **排序算法**:包括冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等,这些排序算法的Java实现可以帮助你理解它们的工作原理和效率。 9. **查找算法**:如二分查找、哈希查找等,这些算法在处理大...

    java数百种算法实现

    - 冒泡排序:基础排序算法,通过不断交换相邻的不正确顺序元素进行排序。 - 选择排序:每次找到未排序部分的最小元素并放置在已排序部分的末尾。 - 插入排序:将未排序的元素逐个插入到已排序部分的适当位置。 -...

    java数据结构算法实现

    冒泡排序的时间复杂度同样为O(N^2),但实际效率可能略高于选择排序,因为它在部分有序的数组上表现更好。 以上是Java中实现的三种基本排序算法,它们都是O(N^2)复杂度,适用于小规模数据。对于大规模数据,更高效的...

    AlgorithmGossip 常用算法C/java实现

    1. 排序算法:如快速排序、归并排序、冒泡排序、插入排序、选择排序等。排序是数据处理的基础,它们用于将数据按特定顺序排列。 2. 搜索算法:包括二分查找、线性查找、深度优先搜索(DFS)和广度优先搜索(BFS)。...

    java实现算法的代码

    常见的基础算法有冒泡排序、选择排序、插入排序、快速排序、二分查找等。 2. **数据结构**:数据结构是存储和组织数据的方式,它关系到算法的效率。Java中常用的数据结构有数组、链表、栈、队列、树(二叉树、平衡...

    一线互联网大厂算法面试问题Java实现

    2. **排序算法**:排序是常见的算法问题,Java实现可能包含快速排序、归并排序、冒泡排序、插入排序、选择排序、堆排序等。理解每种排序算法的原理和性能特性,对于优化代码性能至关重要。 3. **搜索算法**:包括...

    JAVA 经典算法(也有C实现)

    1. **排序算法**:包括冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序等。这些算法用于对一组数据进行排序,各有优缺点,例如,冒泡排序简单但效率低,而快速排序则具有较高的平均性能。 2. **查找算法...

    java算法,数据结构,排序算法,学习路线.zip

    排序算法包括冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序等,每种都有其特点和适用场景,例如快速排序通常在平均情况下表现优秀,而归并排序则保证了稳定性。 排序算法在实际开发中应用广泛,是每个...

    用Java实现基础数据结构,排序算法、经典算法以及leetcode刷题记录.zip

    算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法...

Global site tag (gtag.js) - Google Analytics