方法的定义及冒泡排序快速排序小结

方法的定义:
[访问修饰符] [其他修饰符] 返回值类型 方法名称([方法参数]){
方法体
[return 返回值]
}


egggggg:
public static double abs(double value)
{
if(value>0)
return value;
else
 return -value;
}


\\
在定义方法的时候 要注意参数的类型
当参数类型为 值类型参数时,要注意形参和实参会不会同时被影响 同时发生改变

排序的算法:
1.冒泡排序:冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,比较相邻的两个元素,并按照大小顺序交换它们,直到整个列表排序完成。
         !!!  public static void bubbleSort(int[] arr) {

               int n = arr.length;

               for (int i = 0; i < n - 1; i++) {
                   for (int j = 0; j < n - i - 1; j++) {
                       if (arr[j] > arr[j + 1]) {
                           // 交换arr[j]和arr[j + 1]
                           int temp = arr[j];
                           arr[j] = arr[j + 1];
                           arr[j + 1] = temp;
                       }
                   }
               }
           }
       }


2:选择算法:选择排序(Selection Sort)是一种简单直观的排序算法。它的基本思想是每次从未排序的部分选择最小(或最大)的元素,并将其放在已排序部分的末尾。

           public static void selectionSort(int[] arr) {
               int n = arr.length;

               for (int i = 0; i < n - 1; i++) {

                   for (int j = i + 1; j < n; j++) {
                       if (arr[j] < arr[j]) {

                   // 交换arr[i]和arr[j]
                   int temp = arr[i];
                   arr[i] = arr[j];
                   arr[j] = temp;
                       }
                   }

               }
           }
       }
       选择排序的时间复杂度为O(n^2),其中n是数组的长度。尽管选择排序的时间复杂度较高,但它简单易懂,适用于小规模的数据排序。


1.以序列中的最左(最右)作为快速排序的基准数(逆方向查找)

2.从右往左查找,找到第一个比基准数小的数据,记录该位置为 j

3.从左往右查找,找到第一个比基准数大的数据,记录该位置为 i

4.如果 i < j ,则交换 i 位置和 j位置的值。

5.重复 2 - 3 - 4 步骤,直到 i = j,然后交换基准数位置和 i[j]位置的值。

6.将i[j]左半区和右半区分别重复以上 1 - 2 - 3 - 4 - 5步骤

7.当快速排序的区间left >= right则结束快速排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值