`
等一个晴天
  • 浏览: 19472 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

四类排序的方法:选择,冒泡,插入,快速排序.;

    博客分类:
  • J2SE
阅读更多

package book.oo.shape;
public class CoverHiderTest{
 // 选择
 public int[] sortASC(int[] intArray){
  if(intArray==null){
   return null;
  }
  int[] srcDatas=(int[])intArray.clone();
  int size=srcDatas.length;
  for(int i=0;i<size;i++){
   for(int j=i;j<size;j++){
    if(srcDatas[i]>srcDatas[j]){
     swap(srcDatas,i,j);
    }
   }
  }
  return srcDatas;
 }
 
 private void swap(int[] data,int src,int desc){
  int temp=data[src];
  data[src]=data[desc];
  data[desc]=temp;
 }
 
// 待测试中;换一种方法;
 public int[] sortASC2(int[] intArray){
    if(intArray==null){
     return null;
    }
    int[] srcDatas=(int[])intArray.clone();
    boolean changedPosition=true;
    int comparedTimes=0;
    int maxComparedTimes=srcDatas.length-1;
    while((comparedTimes<maxComparedTimes)&&changedPosition){
    for(int i=0;i<(maxComparedTimes-comparedTimes);i++){
     changedPosition=false;
      if(srcDatas[i]>srcDatas[i+1]){
       swap(srcDatas,i,i+1);
       changedPosition=true;
      }
     }
     comparedTimes++;
    } 
    return srcDatas;
 }
 
// 插入
 public int[] sortASC3(int[] intArray){
  if(intArray==null){
   return null;
  }
  int[] srcDatas=(int[])intArray.clone();
  int size=srcDatas.length;
  int temp=0;
  int index=0;
  for(int i=1;i<size;i++){
   temp=srcDatas[i];
   index=i;
   while((index>0)&&(temp<srcDatas[index-1])){
    srcDatas[index]=srcDatas[index-1];
    index--;
   }
   srcDatas[index]=temp;
  }
  return srcDatas;
 }
 
// 快速排序...
 
 
 public static void main(String[] args){
//测试排序;
  int[] arr=new int[]{1,8,9,2,6,4,3,0,5,7};
  CoverHiderTest test=new CoverHiderTest();
  int[] arr1=test.sortASC(arr);
  for(int i=0;i<arr1.length;i++){
    System.out.println(arr1[i]);
  }
  int[] arr2=test.sortASC2(arr);
  for(int i=0;i<arr2.length;i++){
   System.out.println(arr2[i]);
  }
  int[] arr3=test.sortASC3(arr);
  for(int i=0;i<arr3.length;i++){
    System.out.println(arr3[i]);
  }
  
  Child child=new Child();
  System.out.println(child.name+child.age+child.kind);
  Parent parent=child;
  System.out.println(parent.name+parent.age+parent.kind);
  System.out.println(child.getParentName());
  System.out.println(child.getParentKind());
  child.getName();//C2
  child.getKind();//C1
  parent.getName();//C2
  parent.getKind();//P1
 }
}

 

 

 

分享到:
评论

相关推荐

    排序算法的C语言代码

    常见的排序算法大致分为四类: 1.插入排序:插入排序(insert.c)、shell排序(shellsort.c) 2.选择排序:选择排序(selectsort....3.交换排序:冒泡排序(bubblesort.c)、快速排序(quicksort.c) 4.归并排序(mgergesort.c)

    面试笔试必用-必须掌握Java排序算法.docx

    1. 空间复杂度为 O(1) 的简单排序方法包括直接插入、冒泡和简单选择排序,以及堆排序。 2. 空间复杂度为 O(logn) 的只有快速排序,为栈所需的辅助空间。 3. 空间复杂度为 O(n) 的只有归并排序。 4. 空间复杂度为 O...

    面试必考题目 各种排序实例及点评

    本文总结了各种排序实例,包括直接插入排序、shell 排序、选择排序、冒泡排序、快速排序、归并排序等,并对每种排序算法的特点、优缺点和应用场景进行了分析。 1. 排序算法的分类 根据平均时间复杂度,可以将排序...

    数据结构内部排序算法的性能分析.pdf

    内部排序算法的性能分析研究了多种排序方法,主要包括插入排序、交换排序、选择排序和归并排序这四类。具体到每类排序中,又可细分出不同的子类算法: - 插入排序:包括直接插入排序和希尔排序。 - 交换排序:包括...

    Java常用排序算法&程序员必须掌握的8大排序算法+二分法查找(同步到博客).doc

    【Java 常用排序算法】排序是编程中常见的任务之一,主要分为四类:插入排序、交换排序、选择排序和归并排序。此外,还有分配排序中的基数排序。以下是对这些排序算法的详细说明: 1. **直接插入排序**: 直接插入...

    数据结构10分析PPT学习教案.pptx

    例如,直接插入排序和冒泡排序是稳定的,而快速排序和直接选择排序则是不稳定的。 内部排序是在内存中完成的排序,适用于数据量相对较小的情况。相反,外部排序涉及大量的数据,需要在内外存之间进行交互,通常用于...

    EDA/PLD中的关于C++常用排序法研究

    快速排序通常使用分治策略,通过选择一个基准值并重新排列数组,将大问题分解为小问题来解决。 另一方面,希尔排序是经典的排序算法之一,尽管其平均时间复杂度并非最优,但它采用了插入排序的改进版本,通过增量...

    数据结构考研讲义.docx

    快速排序是一种高效的排序算法,使用分治策略,通过一趟排序将待排序记录分割成独立的两部分。 ##### 6.6 堆排序 堆排序利用堆这种数据结构所设计的一种排序算法,分为创建初始堆和反复调整堆两个步骤。 ##### 6.7...

    数据系统题目

    - 快速排序:通过分治法来排序,时间复杂度平均为\(O(n\log n)\),不稳定。 - 归并排序:也是通过分治法来排序,时间复杂度为\(O(n\log n)\),稳定。 - 堆排序:利用堆这种数据结构来排序,时间复杂度为\(O(n\log...

    数据结构与算法试题及答案.docx

    常用的排序算法有直接插入排序、冒泡排序、快速排序、堆排序等。 8. 栈是一种常用的数据结构,它可以用来实现递归算法。栈的基本操作包括入栈、出栈、栈顶元素等。 9. 链表是一种常用的数据结构,它可以用来实现...

    数据结构——严蔚敏版

    - **快速排序**:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。 - **归并排序**:将两个(或两个以上)...

    数据结构应该掌握的内容

    排序是数据处理的核心任务,常见的排序算法有直接插入排序、冒泡排序、选择排序、快速排序、堆排序、归并排序和基数排序等。不同的排序算法有不同的时间复杂度和稳定性特点,如快速排序是不稳定的,而归并排序是稳定...

    严蔚敏+数据结构题集(C语言版)答案

    内部排序涵盖了冒泡排序、选择排序、插入排序、快速排序、归并排序等多种方法。 8. **动态存储管理**:第八章涉及内存分配与回收,介绍了动态内存分配的策略,如首次适配、最佳适配和最差适配,以及内存碎片问题。 ...

    数据结构考试

    冒泡排序,快速排序,选择排序,归并排序,希尔排序,堆排序,插入排序中哪些排序是不稳定的,为什么?** - **答案解析:** 在这些排序算法中,不稳定的排序包括**冒泡排序、选择排序、希尔排序和堆排序**。这些...

    Java知识总结--CoreJava.doc

    - ArrayList基于动态数组,提供了快速随机访问,但在插入和删除元素时效率较低。 - Vector与ArrayList类似,但它是线程安全的,因此性能稍低。 - LinkedList基于双向循环链表,适合频繁插入和删除,但随机访问...

    数据结构(C#语言版)

    常见的排序算法有冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序等。 - **查找算法**:查找算法是在数据集合中找到特定元素的过程。常见的查找算法有顺序查找、二分查找、哈希查找等。 - **.NET框架中...

    数据结构转向精讲

    排序算法用于将数据按照特定规则排列,包括插入排序、冒泡排序、选择排序、希尔排序、快速排序、堆排序、归并排序、基数排序等多种方法,每种算法的时间复杂度和稳定性不同。 通过对这些知识点的学习,可以系统地...

    数据结构 山东大学考题

    数据结构山东大学考题 本资源摘自山东大学的一份数据结构考试题目,涵盖了数据结构的基本概念、链表、栈、队列、二叉树、图等多个方面的...若对其进行快速排序,则平均时间复杂度是 O(n log n)。 三、解答题 (略)

Global site tag (gtag.js) - Google Analytics