package com.xxx;
public class SortTest {
public static void main(String[] args) {
int[] arrays = {4,7,6,1,9};
// selectSort(arrays);
// bubbleSort(arrays);
// insertSort(arrays);
quickSort(arrays, 0, arrays.length-1);
for(int a:arrays) {
System.out.println(a);
}
}
/**
* 冒泡排序
* @param arrays
*/
public static void bubbleSort(int[] arrays) {
if(arrays.length==0) {
return;
}
for(int i=0;i<arrays.length;i++) {
for(int j=0;j<arrays.length;j++) {
if(arrays[i]<arrays[j]) {
int temp=arrays[i];
arrays[i]=arrays[j];
arrays[j]=temp;
}
}
}
}
/**
* 插入排序
* @param arrays
*/
public static void insertSort(int[] arrays) {
if(arrays.length==0) {
return;
}
int current;
for(int i=0;i<arrays.length-1;i++) {
int preIndex=i;
current=arrays[i+1];
while(preIndex>=0&¤t<arrays[preIndex]) {
arrays[preIndex+1]=arrays[preIndex];
preIndex--;
}
arrays[preIndex+1]=current;
}
}
/**
* 选择排序
* @param arrays
*/
public static void selectSort(int[] arrays) {
if(arrays.length==0) {
return;
}
for(int i=0;i<arrays.length;i++) {
int minIndex=i;
for(int j=i;j<arrays.length;j++) {
if(arrays[j]<arrays[minIndex]) {
minIndex=j;
}
}
int temp=arrays[minIndex];
arrays[minIndex]=arrays[i];
arrays[i]=temp;
}
}
/**
* 快速排序
* @param arrays
* @param low
* @param high
*/
public static void quickSort(int[] arrays,int low,int high) {
if(low<high) {
int part=partition(arrays, low, high);
quickSort(arrays,low,part-1);
quickSort(arrays,part+1,high);
}
}
private static int partition(int[] arrays,int low,int high) {
int pivot=arrays[low];
while(low<high) {
while(low<high&&arrays[high]>=pivot) {
high--;
}
arrays[low]=arrays[high];
while(low<high&&arrays[low]<=pivot) {
low++;
}
arrays[high]=arrays[low];
}
arrays[low]=pivot;
return low;
}
}
分享到:
相关推荐
本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及归并排序。每种算法都有其独特性,适用于不同的场景和数据特性。 1. **直接插入排序**:...
java排序算法java排序算法插入选择冒泡java排序算法插入选择冒泡
除了冒泡排序,代码还展示了其他两种经典的排序算法:选择排序和插入排序。 选择排序的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。...
这些排序算法各有优缺点,如冒泡排序和插入排序简单但效率较低,适用于小规模数据;选择排序和希尔排序在特定情况下有较好的性能;归并排序和快速排序则在大多数情况下都能提供较高的效率,尤其是快速排序,是实际...
这里我们将深入探讨标题和描述中提到的六种排序算法:快速排序、归并排序、插入排序、冒泡排序、选择排序以及堆排序。 1. **快速排序**:由C.A.R. Hoare在1960年提出,是一种高效的分治算法。快速排序的基本思想是...
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht
以下是根据标题和描述中提到的四种排序算法——冒泡排序、快速排序、插入排序和选择排序的详细说明。 **冒泡排序(BuddleSort)**: 冒泡排序是一种简单的交换排序,它通过重复遍历待排序的列表,比较相邻元素并...
本资源包涵盖了五种常见的排序算法:冒泡排序、选择排序、鸡尾酒排序(又称双向冒泡排序)、插入排序以及快速排序。这些排序算法在实际编程中有着广泛的应用,尤其是在处理大量数据时,了解并熟练掌握它们的原理和...
冒泡排序,冒泡排序资源,Java排序实现,java实现各种排序算法:冒泡排序、选择排序、插入排序、Shell排序、快速排序、堆排序、合并排序等。
本篇文章将详细讲解快速排序、冒泡排序和插入排序这三种常用的排序算法,并通过Java代码示例进行演示。 **快速排序** 快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare于1960年提出。其基本思想是...
除了冒泡排序之外,还有其他各种高效的排序算法,如快速排序、归并排序、堆排序、插入排序、选择排序等。每种算法都有各自的优势和局限性,适合不同的使用场景。 快速排序是一个高效的排序算法,采用分治法来把一个...
这些算法包括冒泡排序、插入排序、选择排序、归并排序以及快速排序。 **冒泡排序**是一种基础的排序方法,它通过重复遍历数组,比较相邻元素并交换位置,使得较大的元素逐渐“浮”到数组的一端。冒泡排序的时间...
本篇文章将深入探讨四种基本的排序算法:冒泡排序、选择排序、插入排序以及希尔排序,并结合递归算法的复杂度进行分析。这些排序算法在不同的场景下有不同的效率表现,理解它们的原理和复杂度可以帮助我们更好地选择...
Java 算法:冒泡,选择,插入排序算法
java实现10种排序算法:选择排序、冒泡排序、插入排序、快速排序、归并排序、堆排序、希尔排序、桶排_sorting-algorithms
本文将详细探讨标题所提及的几种排序算法:合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并结合Java语言的实现进行解析。 1. **合并排序(Merge Sort)**: 合并排序是一种基于分治策略的排序算法...
java8中经典排序算法:插入排序、堆排序,选择排序、希尔排序,基数排序、冒泡排序、归并排序、快速排_Arithmetic
以下是关于Java实现的七种排序算法的详细说明: 1. **冒泡排序(Bubble Sort)**: 冒泡排序是一种简单的排序算法,通过不断交换相邻两个元素的位置来逐步将较大的元素推向数组的后部。它的主要思想是重复遍历数组...
常见的排序算法有插入排序、交换排序、选择排序、归并排序、分配排序等。 插入排序是最基本的一种排序算法,它将一个记录插入到已经排序好的有序表中。插入排序有直接插入排序和希尔排序两种,直接插入排序的时间...
这里我们主要探讨的是五种不同的排序算法:插入排序、选择排序、快速排序、希尔排序以及冒泡排序,它们都有对应的链表实现。让我们逐一深入理解这些算法。 1. 插入排序(Insertion Sort) 插入排序是一种简单直观...