`
喜欢蓝色的我
  • 浏览: 370402 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

java实现-简单排序

    博客分类:
  • java
 
阅读更多

喜欢的排序方法:

1.选择排序

•思想:每趟从待排序的记录序列中选择关键字最小的记录放置到已排序表的最前位置,直到全部排完。
•关键问题:在剩余的待排序记录序列中找到最小关键码记录。
•方法:
–直接选择排序
–堆排序
 
①简单的选择排序
  1、基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
  
  2、实例 初始状态 57 68 59 52
a。最小52 ,与第一交换 52  68  59 57
b。 最小 57  与第二个交换 52 57 59 68
c。最小59 不用交换 52 57 59 68
 
代码
package com.sort;
 
//不稳定
public class 简单的选择排序 {
 
    public static void main(String[] args) {
        int[] a={49,38,65,97,76,13,27,49,78,34,12,64,1,8};
        System.out.println("排序之前:");
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+" ");
        }
        //简单的选择排序
        for (int i = 0; i < a.length; i++) {
            int min = a[i];
            int n=i; //最小数的索引
            for(int j=i+1;j<a.length;j++){
                if(a[j]<min){  //找出最小的数
                    min = a[j];
                    n = j;
                }
            }
            a[n] = a[i];
            a[i] = min;
            
        }
        System.out.println();
        System.out.println("排序之后:");
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+" ");
        }
    }
 
}
2。交换排序

①冒泡排序

  1、基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。

  2、实例初始状态 57 68 59 52

a。 57 68 【59 52】 -》57 【68 52】 59 -》【57 52】 68 59 ->52 57 68 59

b. 52 57 [68 59] ->52 57 59 68

 

java shixian

package com.sort;

 

//稳定

public class 冒泡排序 {

    public static void main(String[] args) {

        int[] a={49,38,65,97,76,13,27,49,78,34,12,64,1,8};

        System.out.println("排序之前:");

        for (int i = 0; i < a.length; i++) {

            System.out.print(a[i]+" ");

        }

        //冒泡排序

        for (int i = 0; i < a.length; i++) {

            for(int j = 0; j<a.length-i-1; j++){

                //这里-i主要是每遍历一次都把最大的i个数沉到最底下去了,没有必要再替换了

                if(a[j]>a[j+1]){

                    int temp = a[j];

                    a[j] = a[j+1];

                    a[j+1] = temp;

                }

            }

        }

        System.out.println();

        System.out.println("排序之后:");

        for (int i = 0; i < a.length; i++) {

            System.out.print(a[i]+" ");

        }

    }

}

 
 

冒泡排序是一种稳定的排序方法。 

•若文件初状为正序,则一趟起泡就可完成排序,排序码的比较次数为n-1,且没有记录移动,时间复杂度是O(n)
•若文件初态为逆序,则需要n-1趟起泡,每趟进行n-i次排序码的比较,且每次比较都移动三次,比较和移动次数均达到最大值∶O(n2)
•起泡排序平均时间复杂度为O(n2)
yuan:http://www.cnblogs.com/liuling/p/2013-7-24-01.html
分享到:
评论

相关推荐

    java 字符串a-z排序

    在Java编程语言中,对字符串中的字符进行a到z排序是一项常见的操作,特别是在处理文本数据或需要对字母顺序排列的场景。本知识点将详细讲解如何实现这个功能。 首先,我们需要理解字符串在Java中的本质。在Java中,...

    快排序的Java实现

    本篇将详细讲解如何使用Java实现快速排序。 首先,理解快速排序的步骤至关重要。快速排序的主要步骤包括: 1. **选择枢轴元素(Pivot Selection)**:在待排序的数组中选取一个元素作为枢轴,通常选择第一个或最后...

    快速排序的java实现

    以下是一个简单的Java实现: ```java public class QuickSort { public int partition(int[] a, int i, int j) { int key = a[i]; while (i ) { while (i [j] &gt;= key) { j--; } a[i] = a[j]; while (i [i] ...

    IT面试笔试-各种排序算法Java实现

    【IT面试笔试中的排序算法Java实现】 在IT面试和笔试中,掌握各种排序算法的实现是必不可少的技能。本文将详细介绍几种经典的排序算法,并提供Java语言的实现代码,包括冒泡排序、插入排序、选择排序和快速排序。...

    java实现的排序算法-8个

    Java作为一种广泛使用的编程语言,提供了丰富的工具和方法来实现各种排序算法。以下是基于给定的Java文件名(8种不同的排序算法)的详细说明: 1. **RadixSort.java** - 基数排序 基数排序是一种非比较型整数排序...

    八大排序-java实现版

    八大排序java实现版本,直接插入排序、折半插入排序、冒泡排序、简单选择排序、希尔插入排序、快速排序 、堆排序、2-路归并排序 、基数排序,并有时间比较,博文...

    各种排序算法比较(java实现)

    `Algorithm.java`文件可能包含了这些排序算法的Java实现代码,而`常见排序算法的实现与性能比较.doc`文档则可能详细比较了这些算法的性能和适用场景。`readme.txt`文件可能是对整个项目的简要说明,包括如何运行和...

    进程调度的两种算法JAVA实现----FCFS(先来先服务)和SJF(最短作业优先)

    这里使用了`PriorityQueue`,并提供一个`Comparator`来比较进程的执行时间,从而实现SJF的优先级排序。 **总结** FCFS和SJF都是基于简单原则的调度策略,它们各有优缺点。FCFS简单直观,但可能导致短进程等待时间...

    Java 实例 - 数组排序及元素查找源代码-详细教程.zip

    在提供的资源中,包含了Java实现这些排序算法和查找方法的源代码,这对于初学者理解和实践这些概念非常有帮助。通过阅读和运行这些实例,开发者可以更深入地掌握数组操作的核心技巧,并了解如何在实际项目中应用这些...

    Java实现六种常用排序(含源代码)

    Java实现六种常用排序 并用多线程进行速度比较(其实意义不大) 含有代码

    Java实现简易排序

    总之,Java实现的快速排序、插入排序和选择排序都是重要的数据结构和算法知识,它们在实际开发中有着广泛的应用。理解并能熟练运用这些排序算法,不仅能提升编程技能,也有助于解决复杂问题的能力。在学习和实践中,...

    详解Java常用排序算法-插入排序

    * 实现简单 * 在小型列表上的性能非常好 然而,插入排序算法的缺点是: * 时间复杂度为 O(n^2),这使得它在大型列表和实际应用中效率低下 因此,插入排序算法适用于小型列表或需要快速排序的场景,而不适用于大型...

    java实现冒泡排序

    下面是一个简单的Java冒泡排序实现: ```java public class BubbleSort { public static void bubbleSort(int[] array) { int n = array.length; for (int i = 0; i &lt; n - 1; i++) { // 外层循环控制遍历次数 ...

    详解Java常用排序算法-选择排序

    1. 简单易懂:选择排序的算法简单易懂,易于实现和理解。 2. 稳定排序:选择排序是一种稳定排序算法,即在排序过程中,相同的元素保持原来的顺序。 选择排序的缺点 1. 低效:选择排序的时间复杂度为 O(n^2),这...

    java实现插入排序

    在Java中实现插入排序,主要涉及数组操作和循环控制,我们可以从以下几个方面来理解这个过程。 1. **基本概念** 插入排序在实际操作中类似于打扑克牌,每拿到一张新牌(数组中的元素),就将其插入到已排序的序列...

    Java-各种排序算法

    Java的`java.util.PriorityQueue`类可以用来实现堆排序。 3. **插入排序**:插入排序类似于手洗扑克牌,将未排序的元素逐个插入到已排序的部分。Java中,可以使用一个嵌套循环,外层循环控制未排序部分,内层循环...

    java-选择排序.rar

    Java选择排序是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。选择排序属于不稳定的排序方法,其时间...

    Java实现八大排序算法

    在这里,我们将深入探讨Java实现的八大排序算法,包括冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序、堆排序以及计数排序。 1. **冒泡排序(Bubble Sort)**:冒泡排序是一种简单直观的排序算法,...

    JAVA 8种排序介绍及实现

    直接插入排序是一种简单的排序方法,它的工作原理类似于我们平时手动整理扑克牌。在排序过程中,我们假设前n-1个元素已经排好序,然后将第n个元素插入到已排序的部分,保持排序不变。这个过程不断重复,直到所有元素...

    java-插入排序.rar

    **Java实现插入排序**: 在Java中,我们可以使用两种方式实现插入排序:一种是使用数组,另一种是使用ArrayList。这里以数组为例,展示插入排序的代码实现: ```java public class InsertionSort { public static ...

Global site tag (gtag.js) - Google Analytics