`
javaksing
  • 浏览: 7859 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java排序(一)

    博客分类:
  • Java
阅读更多
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排序.txt

    根据提供的文件信息,我们可以归纳出以下关于Java排序的相关知识点: ### 一、文件基本信息 - **文件名**:`java排序.txt` - **文件描述**:该文本文件主要介绍了几种常用的Java排序算法,并通过示例代码展示了...

    JAVA排序汇总 各种排序

    在Java编程语言中,排序是数据处理中非常基础且重要的操作。本文将全面解析Java中的各种排序算法,帮助你理解并掌握它们的核心概念、实现方式以及适用场景。 1. 冒泡排序(Bubble Sort) 冒泡排序是最简单的排序...

    java中文排序,数字字母汉字排序

    在Java编程语言中,对包含中文、数字和字母的数据进行排序是一项常见的任务。这个场景下,我们关注的是如何实现一个自定义的排序规则,按照数字、字母和汉字的顺序进行排列。以下是对这一主题的详细解释。 首先,...

    java排序代码大全

    根据给定文件中的标题“Java排序代码大全”以及描述与标签中的关键词如“Java排序”、“排序大全”和“算法”,本文将详细解读文件中所包含的几种排序算法的实现方式,并结合具体代码进行深入分析。 ### 快速排序...

    面向对象java排序包

    【面向对象Java排序包】是基于Java编程语言设计的一个专门用于处理排序问题的软件组件。这个包充分体现了面向对象的设计原则,将数据结构、算法和业务逻辑封装在独立的对象中,提高了代码的可读性和可维护性。它不仅...

    java排序简单介绍

    Java排序是程序开发中常见的一种任务,主要用于对数据集合进行有序排列。在Java中,有多种内置和自定义的排序算法可供选择,每种都有其特定的适用场景和性能特点。下面将详细介绍几种常见的Java排序方法。 1. **...

    java 中文姓氏 排序

    ### Java 中文姓氏排序详解 #### 一、引言 在处理中文数据时,我们经常需要对含有中文姓名的数据进行排序。Java 提供了多种方式进行排序,包括使用 `Collections.sort()` 方法配合自定义比较器(`Comparator`)。...

    java排序算法使用及场景说明

    Java 排序算法使用及场景说明 本文档主要介绍了 Java 排序算法的使用和场景说明,包括了五个实践场景的解决方案。 Scenario 1: 找出两个文件共同的 URL 在这个场景中,我们有两个文件 a 和 b,每个文件中存放了 ...

    JAVA排序汇总 java应用中一些比较经典的排序算法

    【JAVA排序汇总】Java编程语言中,排序是数据处理中非常基础且重要的操作。本文将对几种经典的排序算法进行简要介绍和分析。 1. **插入排序**: 插入排序分为直接插入排序和折半插入排序。直接插入排序是将每个...

    java排序大全(含各种排序算法)

    Java排序算法是编程中基础且重要的概念,它们用于组织数组或列表中的元素,使其按照特定顺序排列。在本文中,我们将探讨几种常见的排序算法的Java实现,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、...

    Java排序算法详细整理

    【Java排序算法详细整理】 在计算机科学中,排序算法是用于对一组数据进行排列的算法。在Java中,实现各种排序算法有助于理解数据结构和算法的原理,同时也能提高编程能力。以下是对Java中常见的几种排序算法的详细...

    Java排序算法大全

    Java排序算法大全是一份专为Java开发者准备的学习资源,涵盖了各种经典的排序算法,旨在帮助初学者和有经验的程序员深入理解排序的原理和实现。排序是计算机科学中的基础且重要的概念,它在数据处理、数据库操作、...

    Java 选择排序 算法

    Java选择排序算法是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。这种算法对列表中的数据进行了一次完整...

    java排序大全.txt

    java排序算法大全 为了便于管理,先引入个基础类: 一 插入排序 二 冒泡排序 三,选择排序 四 Shell排序 五 快速排序 六 归并排序 等等

    Java排序算法(桶排序,基数排序等)

    在计算机科学中,排序算法是用于对一组数据进行排列的算法。Java 中实现排序算法通常涉及到多种方法,每种算法都有其特定的适用场景和性能特点。下面将详细介绍标题和描述中提到的一些常见排序算法,并提供Java实现...

    java排序可视化页面

    Java排序可视化页面是一种用于教学和理解排序算法的强大工具。它通过图形化的方式展示了排序过程,使得用户能够直观地看到冒泡排序、选择排序和插入排序这三种基础排序算法的工作原理。接下来,我们将深入探讨这些...

    java 排序 面试题

    ### Java排序方法面试知识点详解 在Java编程领域中,排序算法是面试中常见的技术考察点之一。本篇文章将深入分析几种基本的排序算法,并通过具体的Java代码示例来阐述每种算法的特点及其应用场景。 #### 1. 插入...

    Java排序算法源代码

    本资源“Java排序算法源代码”提供了一系列经典的排序算法实现,包括冒泡排序、插入排序、选择排序、希尔排序和快速排序,全部用Java语言编写。这些算法对于学习和理解排序原理以及优化代码性能至关重要。 1. **...

    Java 实现ip 地址排序

    Java ip 地址排序Java ip 地址排序Java ip 地址排序Java ip 地址排序

Global site tag (gtag.js) - Google Analytics