package com.everyday;
public class InsertSort {
/**插入排序
* @param args
* 插入排序是一种通过不断地把新元素插入到已排好序的数据中的排序算法,
* 常用的插入排序算法包括直接插入排序和shell排序,直接插入排序实现比较简单,
* 时间复杂度是O(n),但是直接插入没有充分的利用已插入的数据已经排序这个事实,
* 因此有很多针对直接插入排序改进的算法,例如折半插入排序等,下边是直接插入排
* 序的Java实现:
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] elements={4,8,7,6,5,9,3,0,1,6};
for(int i=1;i<elements.length;i++){
int j=-1;
while(j <= i && elements[i] > elements[++j]);
if(j<i){
int temp=elements[i];
for(int k=i-1;k>=j;k--){
elements[k+1]=elements[k];
}
elements[j]=temp;
}
}
System.out.println("排序后: ");
for(int i=0;i<elements.length;i++){
System.out.print(" "+elements[i]);
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////
package com.everyday;
/*
* 选择排序是常用内部排序的一种,常见的实现算法有直接选择排序算法和堆排序算法,选择排序的基本思想是每次从待排数据中选择第n小的数据放到排序列表的第n个位置,假如共有N个数据待排,那么经过N-1次排序后,待排数据就已经按照从小到大的顺序排列了。
直接选择排序算法的思想比较简单:(假设数据放在一个数组a中,且数组的长度是N)
1:从a[0]-a[N-1]中选出最小的数据,然后与a[0]交换位置
2:从a[1]-a[N-1]中选出最小的数据,然后与a[1]交换位置(第1步结束后a[0]就是N个数的最小值)
3:从a[2]-a[N-1]中选出最小的数据,然后与a[2]交换位置(第2步结束后a[1]就是N-1个数的最小值)
以此类推,N-1次排序后,待排数据就已经按照从小到大的顺序排列了。
*/
public class SelectSort {
public static void main(String[] args){
int[] elemnets={1,3,5,7,8,2,0,4,6};
System.out.println("排序前:");
for(int i=0;i<elemnets.length;i++){
System.out.print(" "+elemnets[i]);
}
for(int i=0;i<elemnets.length-1;++i){
int k=i;
for(int j=i;j<elemnets.length;++j){
if(elemnets[k]>elemnets[j]){
k=j;
}
}
if(k!=i){
int temp=elemnets[i];
elemnets[i]=elemnets[k];
elemnets[k]=temp;
}
}
System.out.println("排序后:");
for(int i=0;i<elemnets.length;i++){
System.out.print(" "+elemnets[i]);
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////
package com.everyday;
public class BubbleSort {
/**冒泡排序
* @param args
* 它是交换式排序算法的一种.将小的值"浮"到上面,将大的值"沈"到底部的一种排序方法.
* n个元素的排序将进行n-1轮循环,在每一轮排序中相邻的元素进行比较,如果左边的小于
* 或等于右边的,将保持原位置不变,如果左边的大于右边的,将这两个右边的元素的位置交换.
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array= new int[]{4,8,7,6,5,9,3,0,1,6};
int i,j,temp;
System.out.println(" 排序前: ");
for(int a=0;a<array.length;a++){
System.out.print(" "+array[a]);
}
//n个元素的数组进行n-1轮排序
for(i=0;i<array.length-1;i++)
{
//因为每一轮循环将确定一个数组元素的位置,
//所以每一轮的比较次数将会递减
for(j=0;j<array.length-i-1;j++)
{
if(array[j]>array[j+1])
{
//如果第j个元素比它后面的相邻的元素大的话就交换
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
System.out.println();
System.out.println(" 排序后: ");
for(int a=0;a<array.length;a++){
System.out.print(" "+array[a]);
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////
分享到:
相关推荐
JAVA排序汇总JAVA排序汇总JAVA排序汇总
java排序 java 排序 排序大全 算法 java算法
java排序.txt
Java 中的一些重要排序,比如冒泡,直接插入排序
java实现的常用的几种基本排序算法,插入、交换、选择、归并
java排序算法使用及场景说明 文档后面有一些别人的链接,多在google上搜索Java排序算法,及维基百科上面也有很全的算法介绍。
java实现中文排序,按数字字母汉字的顺序进行排序
java排序算法大全 为了便于管理,先引入个基础类: 一 插入排序 二 冒泡排序 三,选择排序 四 Shell排序 五 快速排序 六 归并排序 等等
Java ip 地址排序Java ip 地址排序Java ip 地址排序Java ip 地址排序
Java排序方法详解大全 Java排序 快速排序 冒泡排序
Java排序算法实现 Java排序算法实现 Java排序算法实现
java排序方法 java排序方法 java排序方法 java排序方法
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。 走访元素的工作是重复...
java排序,简单介绍了java的主要有那些排序方法。
JAVA排序汇总,java应用中一些比较经典的排序算法
java类,该类可以对一组数值进行由小到大排序。主类的main方法中,从键盘上输入一组数值,使用该类对其排序。
java 中文姓氏 排序
Java排序算法代码.
java排序大全(含各种常用得排序算法),学习排序不错得资料
执行语句:java sort <输入方式> <图形界面/非图形界面选择> <待排序数列> 例: java sort 0 643 323 12 3 523 23 //命令行输入数据并排序 java sort 1 1 //非图形界面下手动输入数据并排序 java sort 1 2 //手动...