黑马程序员-java中的各种简单排序法实例

原创 2012年03月22日 19:15:38
---------------------- android培训java培训、期待与您交流! ----------------------演示各种简单排序算法

/**
 * 演示各种排序方法
 * @author 李见黎
 *2012-3-17
 */
import java.util.*;

public class Sort {

 /**
  * @param args
  */
 public static void main(String[] args) {
//  int arr[]={1,3,4,2,0,-5,6,7};  //最开始测试数组
  
  /**
   * 产生数组的过程
   */
  int len=30;
  int arr[]=new int[len];
  for(int i=0;i<len;i++)
  {
   //让程序随机产生数,也是很实用的小技巧
   //math.Random产生的是0~1的数
   int r=(int)(Math.random()*len);
   arr[i]=r;   
  }
  
  /**
   * 各种排序实例化
   */
  Bubble bubble=new Bubble();  //冒泡排序
  SelectSort selectSort=new SelectSort();  //选择排序
  InsertSort iSort=new InsertSort();  //插入排序
  
  /**
   * 实现排序,并且显示时间
   */
  Calendar calendar=Calendar.getInstance(); //掌握系统时间,很实用的小技巧
  System.out.println("开始前的时间:"+calendar.getTime());
  
//  selectSort.Sort(arr);
  
//  bubble.bubbleSort(arr);
  
  iSort.Sort(arr);
  //重新获得实例,刷新时间
  calendar=Calendar.getInstance();
  System.out.println("开始后的时间:"+calendar.getTime());
 
  /**
   * 显示排序结果,打印是最费时间的
   */
  for(int i=0;i<arr.length;i++)
  {
   System.out.println(arr[i]);
  }
 
 }

}

/**
 * 插入排序
 * @author 李见黎
 *2012-3-18
 */
class InsertSort
{
 public void Sort(int []arr)
 {
  for(int i=0;i<arr.length;i++)
  {
   int insertValue=arr[i];  //待插入的数
   //insertValue与前一个数比较
   int index=i-1;
   
   while(index>=0&&insertValue<arr[index])
   {//保证index不能使负数,越界
    //满足条件则把arr[index]向前移动
    arr[index+1]=arr[index];
    //将index向后移动
    index--;
   }
   //将insertValue插入到适当的位置
   
   arr[index+1]=insertValue;
   
  }
 }
}

/**
 * 冒泡排序法
 * @author 李见黎
 *2012=3-17
 */

class Bubble
{
 public void bubbleSort(int []arr)
 {
  
  int tempt=0;//中间变量
  
  //排序
  //外层排序,决定走几趟
  for(int i=0;i<arr.length-1;i++)
  {
   //内层循环,开始逐一比较,如果发现前一个数比后一个数大,则交换
   for(int j=0;j<arr.length-1-i;j++)
   {
    if(arr[j]>arr[j+1])
    {//前一个数比后一个数大,交换位置,把最大的放在最前面
     tempt=arr[j];
     arr[j]=arr[j+1];
     arr[j+1]=tempt;          
    }
   }
  }
 }
}

/**
 * 选择排序,速度比冒泡快点
 * @author Administrator
 *2012-3-17
 */
class SelectSort
{
 public void Sort(int []arr)
 {//将最小的数放到最前面
  int tempt=0;  //临时变量
  for(int i=0;i<arr.length-1;i++)
  {
   int min=arr[i];//第一数最小
   int minIndex=i;//记录最小数的下标
   
   //第一个数不参与比较,从第二个数开始比较
   
   for(int j=i+1;j<arr.length;j++)
   {
    if(min>arr[j])
    {//修改最小值
     min=arr[j];
     minIndex=j;
    }
   }
   
  //当退出for循环时就找到最小值,交换最小值
  
   tempt=arr[i];
   arr[i]=arr[minIndex];
   arr[minIndex]=tempt;
  }
 }
}

 

---------------------- android培训java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima

几种常见简单排序算法

几种简单排序算法
  • dalong277
  • dalong277
  • 2016年05月06日 16:08
  • 1428

java 简单排序

public class SortDemo { public static void main(String[] args) { int[] arr = { 12, 3, 4, 56, 688...
  • pengweid
  • pengweid
  • 2015年05月03日 10:15
  • 430

黑马程序员_java中的几种查找方法

1.顺序查找 顺序查找方法比较简单,就是遍历整个数组进行判断。 class search { public static void main(String[] args) { int []...
  • u014214523
  • u014214523
  • 2014年03月19日 14:02
  • 1332

黑马程序员——Java基础---练习题

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- Java基础---练习题 1.写出程序结果class Demo { public stat...
  • liu007004
  • liu007004
  • 2015年01月19日 16:35
  • 704

算法---简单选择排序法

void selectsort(int a[],int n) {         int i,j,t,k;         for(i=0;i         {                 k ...
  • yinhua405
  • yinhua405
  • 2017年05月02日 15:22
  • 174

简单排序法

//选择排序 #include int main() { int n,i,j,k,a[100],s; scanf("%d",&n); for(i=0;i
  • phytn
  • phytn
  • 2014年07月27日 10:17
  • 243

Java 简单排序--冒泡排序

抛砖引玉。。。。 冒泡排序: 核心思想是从头开始让相邻的两个元素进行比较,符合条件就交换位置,这样就把最大值或者最小值放到数组的最后面了; 接着再从头开始两两比较交换,直到把最大值或者最...
  • naruto_ping
  • naruto_ping
  • 2016年10月29日 20:55
  • 5710

Java实现各种简单排序

Java实现各类排序
  • lg346426260
  • lg346426260
  • 2017年03月20日 20:44
  • 251

黑马程序员-java就业面试题大全(持续更新)

1、一个"java"源文件中是否可以包含多个类()?
  • zj3911507
  • zj3911507
  • 2014年06月20日 16:32
  • 1947

各种排序方法的优缺点

一、冒泡排序   已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先比较a[1]与 a[2]的值,若a[1]大于a[2]则交换两者的值,否则不变。再比较a[2]与a[3]的值,...
  • tengjian6107
  • tengjian6107
  • 2016年12月27日 20:39
  • 983
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员-java中的各种简单排序法实例
举报原因:
原因补充:

(最多只允许输入30个字)