java选择排序和冒泡排序

public class Choose{
 public static void main(String[] args){
  int[] arr = {4,6,7,3,1,6};
   Select a = new Select();
   a.sort1(arr);
   System.out.println("选择排序后:");
   for(int i=0;i<arr.length;i++){
    System.out.print(arr[i]);
    }
    a.sort2(arr);
    System.out.println("");
    System.out.println("冒泡排序后:");
    for(int j=0;j<arr.length;j++){
      System.out.print(arr[j]);
      }
    
     
   }

}

/**
//*选择排序基本思想:在每次循环过程中,选出一个最小值,指针依次下移。第一步:选择一个在

小的值放在数组0的位置上,第二次选择//第*二小的放在数组下标为为1的位置上
*/

class Select{
public static void sort1(int arr[]){
for(int i=0;i<arr.length-1;i++){
   for(int j=i+1;j<arr.length;j++){
    if(arr[i]>arr[j]){
        //交换位置
         int temp = arr[i];
         arr[i] = arr[j];
         arr[j] = temp;
         }
     }
   }
   // return arr;
 }

/**
*冒泡排序的基本思想:在第一次循环中,前一个数和第二个数进行比较,小的前移,一次循环结束

之后,确定了最大的数在最后面。
*/
public static void sort2(int arr[]){
  for(int i=0;i<arr.length;i++){
   for(int j=i;j<arr.length-i-1;j++){
     if(arr[j]>arr[j+1]){
       int temp = arr[j];
       arr[j] = arr[j+1];
       arr[j+1] = temp;
       }
     }
   }
}

}

当然java中也可以进行快速排序,不过建议自己不要写快速排序,因为java提供了很多类库,直接调用就行省出了很多写代码的必要。对于排序的方法,直接调用sort方法即可。

在对数组操作中,要注意的问题有角标越级问题,在写排序方法中,可以直接还回数组,这时候方法的还回值类型要设置成数组类型。下面以数组还回值类型为例写一下简单的代码。

class A{
public static int[] sort1(int arr[]){
for(int i=0;i<arr.length-1;i++){
   for(int j=i+1;j<arr.length;j++){
    if(arr[i]>arr[j]){
        //交换位置
         int temp = arr[i];
         arr[i] = arr[j];
         arr[j] = temp;
         }
     }
   }
    return arr;
 }
}

public class Back{
public static void main(String[] arg){
  A a = new A();
  int[] arr ={4,6,1,3,9};
 System.out.println(a.sort1(arr));

}

}

时间: 2024-10-12 08:05:51

java选择排序和冒泡排序的相关文章

java 选择排序与冒泡排序

选择排序与冒泡排序的特点与区别 ++++++++++++++++++++++++++++++++++++++++++++++ 选择排序 这一种简单的排序方法,它的基本思想是:R[n]第一次从R[0]~R[n-1]中选取最小值,与R[0]交换;第二次从R[1]~R[n-1]中选取最小值,与R[1]交换;...., 第i次从R[i-1]~R[n-1]中选取最小值,与R[i-1]交换;.....,第n-1次从R[n-2]~R[n-1]中选取最小值,与R[n-2]交换;总共通过n-1次,得到一个按排序码

选择排序与冒泡排序

这是两种非常相似的算法,都是两个嵌套循环.之前看网上很多人将选择排序当冒泡排序用,我怕以后混了,记录一下. 选择排序 /** * 选择排序 * @Title: getSelectSort * @Description: TODO(这里用一句话描述这个方法的作用) * @param @param arr * @param @return 设定文件 * @return int[] 返回类型 * @throws */ public static int[] getSelectSort(int[] ar

算法——蛮力法之选择排序和冒泡排序c++实现

这次实现的是蛮力法中的两个例子,选择排序法和冒泡排序法,使用的编译环境是vs2013,下面对这两个算法做一个简单介绍,然后是两个算法的c++实现代码. 选择排序法比较的范围是整个列表,每次扫描结束找出最小的一个元素一次放在前面的位置:而冒泡排序法每次是将相邻两个元素进行比较,将较大的元素放在后面,这样一次扫描结束后就将当前最大的那个元素放在了列表的后面. 两个排序方法的算法如下: 选择排序法 SelectionSort(A[0....n-1]) //输入:一个可排序数组A[0....n-1],

java选择排序

/** * Created by rabbit on 2014-5-9. */ class ArrayTest2 {     public static void SelectSort(int [] arr) //定义选择排序的方法     {         for (int x=0;x<arr.length;x++)         {             for (int y=0;y<arr.length-1;y++)             {                 if

图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

图形化排序算法比较:快速排序.插入排序.选择排序.冒泡排序

算法效率的分析--【以选择排序与冒泡排序为基础】

在前面我们实现了选择排序与冒泡排序的具体实现,现在我们从数学的角度分析下算法的效率问题: 首先我们把两种排序算法的概念重温一遍: 选择排序:在每一轮中,找出最小的元素放在他最终的位置.挺起来有些别扭,我们举个实例: eg:        8, 5,1, 20, 6, 3 1ed······  1, 5,8, 20, 6, 3 2ed······  1, 3, 8,20, 6,5 3ed······  1, 3,5, 20, 6, 8 4ed······  1, 3,  5, 6,  20,8 5

C语言排序算法之简单交换法排序,直接选择排序,冒泡排序

C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 1 /*简单交换法排序 2 根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置 3 交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动 4 不稳定 5 */ 6 #include<windows.h> 7 #include<stdio.h> 8 void main(){ 9 int i,j,arr[10

插入排序,选择排序,冒泡排序等常用排序算法(java实现)

  package org.webdriver.autotest.Study; import java.util.*; public class sort_examp{  public static void main(String[] args)  {   Integer[] num={49,38,65,97,76,13,27,49,78,34,12,64,1};   //insertsort(num);   //selectsort(num);   maopaosort(num);     

JAVA基础-数组的排序(选择排序和冒泡排序),总结精辟!!!

1.-------寄语 对于初学JAVA的同学来说,排序是在陌生不过的一个基础题了.但是由于自己刚刚步入学习JAVA的世界,很多东西不能很好的理解,导致自己虽然可以敲出代码或者大致能够想明白, 但是对于解决问题的思想并没有很好的深入.(其实一开始学习也没必要太刨根问底,等到自己有一定的基础了,有时间了再研究一下.抱着研究的态度感觉会更好一点.其实大部分目前的 开发者都是经过了一段时间的培训,在培训的过程中,课程速度特别快,有时候我们必须要“不拘小节”,掌握培训中的主流知识才是明智之举.如果你正在