`
ReFly
  • 浏览: 7294 次
  • 性别: Icon_minigender_1
  • 来自: 资阳
最近访客 更多访客>>
社区版块
存档分类
最新评论

普通排序法,很杂乱(第一次修改,未注解)

J# 
阅读更多

package fifthsa;

public class Test1 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("创建一个二十个元素的随机的数组");
int  Nu[]=new int[20];
MakeArray makeArray= new MakeArray();
makeArray.makeArray(Nu); //用Make类为函数随机赋值


System.out.println("第一种方法排列");
rankWay1 rank1= new rankWay1();
rank1.way1(Nu);
PrintOut printNu=new PrintOut();
printNu.printOut(Nu);

System.out.println("第二种方法排列");
rankWay2 rank2= new rankWay2();
rank2.way2(Nu);
printNu.printOut(Nu);

System.out.println("第三种方法排列");
rankWay3 rank3= new rankWay3();
rank3.way3(Nu);
printNu.printOut(Nu);

System.out.println("第四种方法排列");
rankWay4 rank4= new rankWay4();
rank4.way4(Nu);
printNu.printOut(Nu);



}

}
//对数组随机赋0-10000的值
class MakeArray{
public void makeArray(int Nu[]){
for (int i = 1; i <=Nu.length; i++ ) {
// Math.random() 方法是随机产生一个正号的double型的0-1的数
int t  =(int)(Math.random()*10000);  //获得的随机数转成 整型
Nu[i]=t;
}
}
}
//方法1的类
class rankWay1{
    public void  way1( int  Nu[]){
    int temp=0;//定义一个中转量
for (int i = 0; i < Nu.length-1; i++) {
//内层循环,开始逐个比较
for (int j = 0; j < Nu.length-i-1; j++) {
if (Nu[j]>Nu[j+1]) {
temp=Nu[j];
Nu[j]=Nu[j+1];
Nu[j+1]=temp;
}
}
  }
   }
    }
//方法2的类
class rankWay2{
public void way2(int Nu[]){
     for (int i = 0; i < Nu.length; i++) {
int temp=0;
for (int j = i+1; j < Nu.length; j++) {
if(Nu[i]>Nu[j]){
temp=Nu[i];
Nu[i]=Nu[j];
Nu[j]=temp;

        }
}
      }
        }
     }
//方法3的类
class rankWay3{
public void way3(int Nu[]) {
for (int i = 2; i <Nu.length; i++) {
int tempNu=i;
int theOne =Nu[i];
while (theOne>=0 && Nu[tempNu]<Nu[tempNu-1] ) {
int temp=0;
temp=Nu[tempNu];
Nu[tempNu]= Nu[tempNu-1];
Nu[tempNu-1]=temp;
tempNu--;
}
}
  }
}
//方法4的类
class rankWay4{
public void way4(int Nu[]){
for (int i = 2; i < Nu.length; i++) {
int theSecond=Nu[i];
int theFirstNu=i-1;
while(theFirstNu>0&&Nu[theFirstNu]>theSecond) {
Nu[theFirstNu+1]=Nu[theFirstNu];
theFirstNu--;
     }
Nu[theFirstNu+1]= theSecond;
}
}
   }
//依次打印数组的类
class PrintOut{
public   void  printOut(int Nu[]) {
for (Integer i:Nu) {  
             System.out.println(i);  
        }  
}
}

 

0
0
分享到:
评论

相关推荐

    直接排序法,折半插入法,希尔排序法,快速排序法(c语言实现)

    简单选择排序是一种基础的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。这种排序方式时间复杂度为O(n^2),适用于小...

    C语言_插入排序法和冒泡排序法

    - **外层循环**:用于控制排序轮数,每一轮将当前未排序部分的最大值移动到正确位置。 - **内层循环**:用于每次比较并交换相邻的两个元素。 - **交换条件**:`if(a[i] &gt; a[i+1])`,当当前元素大于后一个元素时,...

    冒泡排序法C#实现

    冒泡排序法C#实现冒泡排序法C#实现冒泡排序法C#实现冒泡排序法C#实现冒泡排序法C#实现冒泡排序法C#实现冒泡排序法C#实现冒泡排序法C#实现冒泡排序法C#实现冒泡排序法C#实现冒泡排序法C#实现冒泡排序法C#实现冒泡排序...

    算法桶式排序法桶式排序法

    桶式排序法桶式排序法桶式排序法桶式排序法

    C语言 选择排序法

    选择排序法(Selection Sort)是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。本文将详细介绍C语言实现...

    选择排序法源代码

    选择排序是一种简单的排序算法,它的基本思想是在未排序的序列中找到最小(或最大)的元素,存放到排序序列的起始位置,然后再从剩余未排序的元素中继续寻找最小(或最大)的元素,然后放到已排序序列的末尾。...

    c语言 插入排序法

    c语言基本插入排序法c语言基本插入排序法c语言基本插入排序法c语言基本插入排序法

    使用快速排序法对一维数组进行排序

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治策略,通过选取一个“基准”元素,将数组分为两个子数组,使得一个子数组的所有元素都小于或等于基准,另一个子数组...

    C#选择排序法排序

    在编程领域,排序算法是数据结构与算法课程中的基础部分,它用于组织和优化数据的存储方式。在C#中,实现排序算法可以极大地提升程序的效率和用户体验。...这将是一个很好的实践平台,帮助你深入理解和运用选择排序法。

    C#冒泡排序法

    在C#环境下使用冒泡排序法对一位数组进行排序

    四种排序法

    1. 将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。 2. 从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的...

    c#选择排序法 冒泡排序法 插入排序法 3种排序法

    它重复地遍历待排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行的,直到没有再需要交换,也就是说该数列已经排序完成。 **代码实现:** ```csharp using System; ...

    修改起泡排序法 数据结构课程设计

    起泡法排序的排序过程如下,首先将第一个记录与第二个记录进行比较,若为逆序(R[1]&gt;R[2]),则将两个记录交换,然后比较第二个记录和第三个记录。依次类推,直到第n- 1个记录完成比较为止。上述过程称为第一次起泡...

    双向起泡排序法 双向链表 排序

    双向起泡排序法通过设置两个指针,一个用于追踪当前未排序部分的首节点(前指针),另一个追踪已排序部分的尾节点(后指针)。在每一轮排序中,这两个指针会逐步接近,直到它们相遇,此时整个链表排序完成。 排序...

    直接排序法和堆排序法为随机数组排序后输出

    直接排序法和堆排序法为随机数组排序后输出

    一种快速的排序法—插入合并排序法

    ### 一种快速的排序法—插入合并排序法 #### 概述 在计算机科学领域,排序算法是一项基础且重要的技术,广泛应用于数据管理和处理过程之中。根据数据存储位置的不同,排序算法可以分为内排序和外排序两大类。本文...

    C++冒泡排序法

    用C++写的简单的冒泡排序法,对于初学C++的人应该比较有用,欢迎下载分享

    C语言程序设计-编写函数用选择排序法对数组中的数据进行从小到大的排序;

    功能:编写函数用选择排序法对数组中的数据进行从小到大的排序;

    冒泡排序法

    冒泡排序法是一种基础但经典的排序算法,尤其适用于小规模数据的排序。它的工作原理可以形象地比喻为水底下的气泡逐个上浮的过程。在C++编程中,实现冒泡排序法主要涉及到数组操作和条件判断。下面将详细阐述冒泡...

Global site tag (gtag.js) - Google Analytics