冒泡排序算法
/**
* 冒泡排序是最简单的排序算法之一。此算法具有二次方程增长阶,
* 因此仅适合排序小列表。
* 冒泡排序算法是阶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#的一些算法 选择排序 冒泡排序 快速排序 插入排序 希尔排序 归并排序 基数排序 计数排序。。。
经典排序算法 - 插入排序Insertion sort 经典排序算法 - 基数排序Radix sort 经典排序算法 - 鸽巢排序Pigeonhole sort 经典排序算法 - 归并排序Merge sort 经典排序算法 - 冒泡排序Bubble sort 经典排序算法 - ...
Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...
Python算法之---冒泡,选择,插入排序算法.py
//冒泡排序 for(int i=0;i;i++){ for(int j=i+1;j;j++){//注意j的开始值是i+1,因为按照排序规则,比a[i]大的值都应该在它后面 if(a[i] > a[j]){ int temp = a[j]; a[j] = a[i]; a[i] = temp; ...
8.12-8.19_冒泡_选择_插入_希尔_快速_归并_基数_堆排序_排序算法Swift代码及UI演示
数据结构(c语言版)严蔚敏 吴伟民编著 中直接插入排序、折半排序、shell排序、冒泡排序、快速排序、选择排序、堆排序的实现、归并排序,使用c语言实现
C语言实现常见排序算法。编译环境:VS2010。 包括: 冒泡排序 快速排序 直接插入排序 Shell排序 直接选择排序 堆排序 归并排序(递归和非递归两种) 桶式排序 基数排序:顺序和静态队列两种方法 索引排序(采用简单...
7大排序算法(快速排序,冒泡排序,选择排序,归并排序,插入排序,希尔排序,堆排序)实现源码
六种内部排序算法比较:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序。包含实验报告和源代码设计。
此文件为数据结构中的九种排序算法,包含一些排序方法的过程,其九种排序包括:直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,选择排序,堆排序,归并排序,基数排序!
采用c++描述了各种排序算法,包括选择排序 冒泡排序 插入排序 基数排序 快速排序 归并排序 。实验内容 1、创建排序类。 2、提供操作:选择排序、冒泡排序、插入排序、*基数排序、*快速排序、*归并排序。 3、*能够...
数据结构---直接插入排序/快速排序/选择排序/冒泡排序(详细实现算法和性能比较)
冒泡排序算法选择排序算法插入排序c语言实现
直接插入排序 冒泡排序 快速排序 直接选择排序 堆排序 二路归并排序 C#源代码 使用C#实现的数据结构中的排序算法
本文介绍了C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序 冒泡排序、选择排序、插入排序和希尔排序
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht
java排序算法java排序算法插入选择冒泡java排序算法插入选择冒泡
插入排序,选择排序,基数排序,冒泡排序的C++实现