两种基础的数组排序方法。

简介: 两种基础的数组排序方法。

方法一: 选择排序:

选择排序就是不断地从未排序的元素中选择最大(或者最下)的元素放入已经排好序的元素集合中,直到未排序中仅剩一个元素为止

   public static void main(String[] args) {
        int[]arr={1,6,4,3,2,5};
        /*外循环 将数组里的参数逐个进内循环去比较 从第一个到倒数第二个
          为了保证后面存在数去比较 避免内循环数组下标越界异常
        * */
        for (int i = 0; i < arr.length-1; i++) {
            /*传进去一个数去和没比较的数去比较 如果大于就交换位置
              如果不大于就和下一个数比较 直到大于或者一波内循环结束*/
            for (int i1 = i+1; i1 < arr.length; i1++) {
                if(arr[i]>arr[i1]){
                    int temp;
                    temp=arr[i];
                    arr[i]=arr[i1];
                    arr[i1]=temp;
                }
            }
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+"\t");
        }
    }

方法二:冒泡排序:

冒泡排序的原理(以递增序为例)是每次从头开始依次比较相邻的两个元素,

如果后面一个元素比前一个要大,说明顺序不对,则将它们交换,

本次循环完毕之后再次从头开始扫描,直到某次扫描中没有元素交换,

说明每个元素都不比它后面的元素大,至此排序完成。

  public static void main(String[] args)
  {
    int[]a={2,1,4,5,3};
    for(int i=1;i<a.length;i++)      //外循环相当于重新扫描的次数 
    {                    //直到某次扫描中没有元素交换,
      for(int j=0;j<a.length-i;j++)
      {
        int temp;                //内循环为了进行相邻的两个元素的大小比较 和元素交换
        if(a[j]>a[j+1])
        {
          temp=a[j];
          a[j]=a[j+1];
          a[j+1]=temp;
        }
      }
    }
    System.out.println(Arrays.toString(a));
  }
相关文章
|
6月前
|
算法
快速打乱一个数组排序的方式有哪些?
快速打乱一个数组排序的方式有哪些?
83 0
|
3月前
|
存储 算法 Java
深入算法基础二分查找数组
文章深入学习了二分查找算法的基础,通过实战例子详细解释了算法的逻辑流程,强调了确定合法搜索边界的重要性,并提供了Java语言的代码实现。
深入算法基础二分查找数组
|
4月前
|
搜索推荐
|
存储 Java 索引
Java数组长度和增强遍历数组
Java数组长度和增强遍历数组
55 0
C#基础⑥.2——数组(冒泡排序、求最值、数组排序、forr反转)
一次语文测试后,老师让班长统计每一个学生的成绩并计算全班(全班共5人)的平均成绩,然后把所有成绩显示出来。
|
6月前
Qsort函数实现对各类型数组中元素的排序(思路简单)
Qsort函数实现对各类型数组中元素的排序(思路简单)
|
算法 Java
Java实现二分法查找数组中某一个元素
Java实现二分法查找数组中某一个元素
193 0
|
Java
Java实现数组求和
Java实现数组求和
157 0
|
算法 搜索推荐 Java
数组的四种排序方法介绍
数组的四种排序方法介绍
293 0