冒泡排序算法
/**
* 冒泡排序是最简单的排序算法之一。此算法具有二次方程增长阶,
* 因此仅适合排序小列表。
* 冒泡排序算法是阶O(n^2)的算法
*/
package com.szy.structure.sort;
public class BubbleSort
{
public static void main(String[] args)
{
int[] array=new int[]{10,-2,30,22,1,2,5,4,3,20};
System.out.println("排序前:");
for (int i : array)
{
System.out.print(i+" ");
}
for (int i = 1; i < array.length; i++)
{
for (int j = 0; j < array.length-i; j++)
{
if (array[j]>array[j+1])
{
int temp=0;
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
System.out.println("\n排序后:");
for (int i : array)
{
System.out.print(i+" ");
}
}
}
选择排序算法:
/**
* 选择排序是一个简单的排序算法,选择排序具有二次方程增长阶,
* 因此仅使用与排序小的列表
* 选择排序算法是阶O(n^2)的算法
*/
package com.szy.structure.sort;
public class SelectionSort
{
public static void main(String[] args)
{
int[] array=new int[]{10,-2,30,22,1,2,5,4,3,20};
System.out.println("排序前:");
for (int i : array)
{
System.out.print(i+" ");
}
for (int i = 0; i < array.length-1; i++)
{
int min_index=i;
for (int j = i+1; j < array.length; j++)
{
if (array[min_index]>array[j])
{
min_index=j;
}
}
int temp=array[i];
array[i]=array[min_index];
array[min_index]=temp;
}
System.out.println("\n排序后:");
for (int i : array)
{
System.out.print(i+" ");
}
}
}
插入排序算法:
/**
* 插入排序具有二次方程增长阶,因此仅用于排序小列表。
* 但是如果需要排序的列表几乎已经排序,则插入排序比冒泡排序
* 和选择排序更有效率。
* 插入排序最佳用例效率是O(n)阶
* 插入排序最糟用例效率是O(n^2)阶
*/
package com.szy.structure.sort;
public class InsertionSort
{
public static void main(String[] args)
{
int[] array=new int[]{10,-2,30,22,1,2,5,4,3,20};
System.out.println("排序前:");
for (int i : array)
{
System.out.print(i+" ");
}
for (int i = 1; i < array.length; i++)
{
int number=array[i];
for (int j = 0; j <i; j++)
{
if (number<array[j])
{
for (int k = i; k >j; k--)
{
array[k]=array[k-1];
}
array[j]=number;
break;
}
}
}
System.out.println("\n排序后:");
for (int i : array)
{
System.out.print(i+" ");
}
}
}
分享到:
相关推荐
根据给定的信息,本文将详细解释C#中的几种基本排序算法:选择排序、冒泡排序、快速排序、插入排序、希尔排序以及归并排序的基本原理和实现方式。 ### 一、选择排序(Selection Sort) #### 算法原理 选择排序是一...
本篇文章将详细讨论几种常见的排序算法:选择排序、冒泡排序、插入排序、合并排序以及快速排序,分析它们的算法原理、时间效率,并通过经验分析验证理论分析的准确性。 **1. 选择排序(Selection Sort)** 选择排序...
经典排序算法 - 插入排序Insertion sort 经典排序算法 - 基数排序Radix sort 经典排序算法 - 鸽巢排序Pigeonhole sort 经典排序算法 - 归并排序Merge sort 经典排序算法 - 冒泡排序Bubble sort 经典排序算法 - ...
本资源包含三个经典的排序算法的源代码:插入排序、选择排序和冒泡排序,这些都是初级到中级程序员常学习和使用的算法。下面将详细介绍这三个排序算法的工作原理、特点以及代码实现。 1. **插入排序(Insertion ...
总的来说,这段代码提供了四种排序算法的实现,分别是冒泡排序、选择排序、插入排序以及Java内置的数组排序。每种排序算法都有其适用场景,理解这些算法可以帮助我们更好地解决实际问题,并根据需求选择合适的排序...
选择排序算法也是一种简单的排序算法,它的工作原理是通过选择最小或最大元素,并将其与第一个元素交换,以达到排序的目的。选择排序算法的时间复杂度也为O(n^2),因此它也适合小规模的数据排序。 3.插入排序算法 ...
Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...
本主题将详细探讨四种常见的排序算法:选择排序、插入排序、快速排序以及冒泡排序,它们都是用C语言实现的。以下是这些排序算法的详细解析: 1. **选择排序(Selection Sort)** - 选择排序是一种简单直观的排序...
1. 冒泡排序(Bubble Sort):冒泡排序是最简单的排序算法之一,通过不断交换相邻的不正确顺序元素,使较大的元素逐渐“浮”到序列的末尾。它的时间复杂度为O(n^2)。 2. 选择排序(Selection Sort):选择排序每次...
本资源提供了七大经典排序算法的实现程序,包括快速排序、冒泡排序、选择排序、归并排序、插入排序、希尔排序和堆排序。下面将逐一详细介绍这些排序算法及其原理。 1. 快速排序:由C.A.R. Hoare提出,是一种采用...
1. **冒泡排序**:冒泡排序是一种简单直观的排序算法,通过不断交换相邻的错误顺序元素来逐步完成排序。它重复地走访过要排序的元素,依次比较每一对相邻元素,如果它们的顺序错误就把它们交换过来。走访元素的工作...
Python算法之---冒泡,选择,插入排序算法.py
冒泡排序(Bubble Sort)是一种简单的排序算法,其工作原理是通过重复地遍历待排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列...
在本文中,我们将深入探讨四种经典的排序算法:插入排序、选择排序、基数排序和冒泡排序,以及它们在C++语言中的实现。 **插入排序(Insertion Sort)** 插入排序是一种简单直观的排序算法,它的工作原理类似于我们...
数据结构(c语言版)严蔚敏 吴伟民编著 中直接插入排序、折半排序、shell排序、冒泡排序、快速排序、选择排序、堆排序的实现、归并排序,使用c语言实现
C语言实现常见排序算法。编译环境:VS2010。 包括: 冒泡排序 快速排序 直接插入排序 Shell排序 直接选择排序 堆排序 归并排序(递归和非递归两种) 桶式排序 基数排序:顺序和静态队列两种方法 索引排序(采用简单...
以上六种排序算法各有优缺点,如选择排序和冒泡排序时间复杂度较高,但实现简单;插入排序在部分有序的情况下效率较高;基数排序适用于处理大量整数排序;快速排序平均性能优秀,但最坏情况下时间复杂度较高;归并...
本文将深入探讨标题和描述中提到的一些基本排序算法,包括选择排序、冒泡排序、插入排序、希尔排序、堆排序、快速排序以及归并排序,并结合C++编程语言进行讲解。 1. **选择排序(Selection Sort)** - 选择排序是一...
- 直接插入排序:是一种简单的排序算法,将每个元素插入到已排序的部分,保持有序。时间复杂度为O(N^2),适用于小规模数据和基本有序的数据。 - 希尔排序:是插入排序的一种改进版本,通过设定间隔序列(希尔增量...
此文件为数据结构中的九种排序算法,包含一些排序方法的过程,其九种排序包括:直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,选择排序,堆排序,归并排序,基数排序!