JAVA数组中五种常见排序方法

前言:

几种常用的JAVA数组排序方法的整合。

法一:Arrays.sort()

Arrays.sort()排序方法在java中是最简单且最常用的排序方法

    int []arr1= {45,34,59,55};
	Arrays.sort(arr1);//调用方法排序即可

法二:冒泡排序

简单来说,冒泡排序就是重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

//array[]为待排序数组,n为数组长度
void BubbleSort(int array[], int n)
{
    int i, j, k;
    for(i=0; i<n-1; i++)
        for(j=0; j<n-1-i; j++)
        {
            if(array[j]>array[j+1])
            {
                k=array[j];
                array[j]=array[j+1];
                array[j+1]=k;
            }
        }
}

法三:选择排序

先找到最小元素所在位置的索引,然后将该元素与第一位上的元素进行交换。

int arr3[]= {23,12,48,56,45};
    for(int i=0;i<arr3.length;i++) {
		int tem=i;
                //将数组中从i开始的最小的元素所在位置的索引赋值给tem
		for(int j=i;j<arr3.length;j++) {
			if(arr3[j]<arr3[tem]) {
				tem=j;
			}
		}
		//上面获取了数组中从i开始的最小值的位置索引为tem,利用该索引将第i位上的元素与其进行交换
		int temp1=arr3[i];
		arr3[i]=arr3[tem];
		arr3[tem]=temp1;
	}

法四:反转排序

将原数组按逆序排列

//将数组第i位上的元素与第arr.length-i-1位上的元素进行交换
int []arr4={23,12,48,56,45};
	for(int i=0;i<arr4.length/2;i++) {
		int tp=arr4[i];
		arr4[i]=arr4[arr4.length-i-1];
		arr4[arr4.length-i-1]=tp;
	}

法五:直接插入排序

int []arr5={23,12,48,56,45};
	for (int i = 1; i < arr5.length; i++) {
		for (int j = i; j > 0; j--) {
			if (arr5[j - 1] > arr5[j]) {//大的放后面
				int tmp = arr5[j - 1];
				arr5[j - 1] = arr5[j];
				arr5[j] = tmp;
			}
		}
	}

 

  • 84
    点赞
  • 362
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
Java数组快速排序是一种常用的排序算法。快速排序的基本思想是选择一个基准元素,将数组分为两个子数组,小于基准元素的放在左边,大于基准元素的放在右边。然后对左右子数组分别递归地进行快速排序,最终得到有序的数组。 以下是使用Java实现快速排序的代码示例: ``` public static void quickSort(int[] arr, int low, int high) { if (low < high) { int pivot = partition(arr, low, high); // 划分数组,返回基准元素的索引 quickSort(arr, low, pivot - 1); // 对基准元素左边的子数组进行快速排序 quickSort(arr, pivot + 1, high); // 对基准元素右边的子数组进行快速排序 } } private static int partition(int[] arr, int low, int high) { int pivot = arr[low]; // 选择第一个元素作为基准元素 int left = low + 1; int right = high; while (left <= right) { while (left <= right && arr[left] < pivot) { left++; // 找到左边大于等于基准元素的索引 } while (left <= right && arr[right] > pivot) { right--; // 找到右边小于等于基准元素的索引 } if (left <= right) { // 交换左右两个元素 int temp = arr[left]; arr[left] = arr[right]; arr[right] = temp; left++; right--; } } // 将基准元素交换到正确的位置 arr[low] = arr[right]; arr[right] = pivot; return right; // 返回基准元素的索引 } ``` 以上代码是一个递归实现的快速排序算法,它通过选择基准元素和划分数组来实现排序。你可以将待排序数组作为参数传入`quickSort`方法中,然后调用这个方法即可实现快速排序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [使用 Java 实现快速排序(详解)](https://blog.csdn.net/qq_39218530/article/details/116998678)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Java常见数组排序方法](https://blog.csdn.net/qq_44495081/article/details/102826486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值