当前位置:  编程技术>移动开发
本页文章导读:
    ▪生产者/消费者方式2        生产者/消费者模式2 private Egg egg = new Egg();    public PutEggThread(Plate plate){   this.plate = plate;  }  public void run(){   for(int i = 0; i < PUT_EGG_TIMES; i++){    plate.putEgg(egg);   }  } }  static cla.........
    ▪ 各种排序算法一        各种排序算法1 package demo; import java.util.Arrays;import java.util.Random; import org.junit.Test; public class Sort { /**  * 冒泡排序   * 若前一个元素大于后一个元素,将两者交换。  */ public int[] bubbleSort(int[] i.........
    ▪ 各种排序算法二       各种排序算法2 /**  * 快速排序   * 思路:选择中间数作为基准,然后i从左向右找到第一个大于等于这个基准的数,j从右向左找到第一个小于等于该基准的数,直到i>=j,交换这两个数。  *.........

[1]生产者/消费者方式2
    来源: 互联网  发布时间: 2014-02-18
生产者/消费者模式2

private Egg egg = new Egg();
  
  public PutEggThread(Plate plate){
   this.plate = plate;
  }
  public void run(){
   for(int i = 0; i < PUT_EGG_TIMES; i++){
    plate.putEgg(egg);
   }
  }
 }
 
 static class GetEggThread extends Thread{
  private static final int GET_EGG_TIMES = 5;
  private Plate plate;
  
  public GetEggThread(Plate plate){
   this.plate = plate;
  }
  
  public void run(){
   for(int i = 0; i < GET_EGG_TIMES; i++){
    plate.getEgg();
   }
  }
 }
 
 private static class Egg{
  
 }
 
 public static void main(String[] args) {
  try {
   Plate plate = new Plate();
   Thread putEggThread = new PutEggThread(plate);
   Thread getEggThread = new GetEggThread(plate);
   putEggThread.start();
   getEggThread.start();
   putEggThread.join();
  } catch (InterruptedException e) {
   e.printStackTrace();
  }
 }
}


    
[2] 各种排序算法一
    来源: 互联网  发布时间: 2014-02-18
各种排序算法1

package demo;

import java.util.Arrays;
import java.util.Random;

import org.junit.Test;

public class Sort {
 /**
  * 冒泡排序
  * 若前一个元素大于后一个元素,将两者交换。
  */
 public int[] bubbleSort(int[] iAry) {
  int aryLen = iAry.length;
  for (int i = 1; i < aryLen; i++) {
   for (int j = 0; j < aryLen - i; j++) {
    if (iAry[j] > iAry[j + 1]) {
     swap(iAry, j, j + 1);
    }
   }
  }
  return iAry;
 }

 /**
  * 选择排序
  */
 public int[] selectSort(int[] iAry) {
  int aryLen = iAry.length;
  int index = 0;
  for (int i = 1; i < aryLen; i++) {
   index = 0;
   for (int j = 1; j <= aryLen - i; j++) {
    if (iAry[j] > iAry[index]) {
     index = j;
    }
   }
   swap(iAry, index, aryLen - i);
  }
  return iAry;
 }

 /**
  * 插入排序
  * 将一个记录插入到已排好序的有序表中,从而得到一个新的记录数增1的有序表。
  */
 public int[] insertSort(int[] iAry) {
  int aryLen = iAry.length;
  for (int i = 1; i < aryLen; i++) {
   for (int j = 0; j < i; j++) {
    if (iAry[j] > iAry[i]) {
     swap(iAry, i, j);
    }
   }
  }
  return iAry;
 }


    
[3] 各种排序算法二
    来源: 互联网  发布时间: 2014-02-18
各种排序算法2

/**
  * 快速排序
  * 思路:选择中间数作为基准,然后i从左向右找到第一个大于等于这个基准的数,j从右向左找到第一个小于等于该基准的数,直到i>=j,交换这两个数。
  * 然后递归对左边i个数和右边n-1-i个数进行相同排序。
  */
 public int[] quickSort(int[] iAry, int left, int right) {
  if (left < right) {
   int midNum = iAry[(left + right) / 2];
   int i = left - 1;
   int j = right + 1;
   while (true) {
    while (iAry[++i] < midNum);
    while (iAry[--j] > midNum);
    if (i >= j) {
     break;
    }
    swap(iAry, i, j);
   }
   quickSort(iAry, left, i - 1);
   quickSort(iAry, j + 1, right);
  }
  return iAry;
 }

 private int[] createAry() {
  Random rand = new Random();
  int[] ary = new int[5];
  for (int i = 0; i < ary.length; i++) {
   ary[i] = rand.nextInt(100);
  }
  return ary;
 }

 private void printAry(int[] ary) {
  System.out.println(Arrays.toString(ary));
 }

 private void swap(int[] iAry, int num1, int num2) {
  int temp = iAry[num1];
  iAry[num1] = iAry[num2];
  iAry[num2] = temp;
 }

 @Test
 public void sortTest() {
  int[] iAry = createAry();
  System.out.print("原始数组:");
  printAry(iAry);

   iAry = bubbleSort(iAry);
   System.out.print("冒泡排序后的数组:");
   printAry(iAry);
  
   iAry = selectSort(iAry);
   System.out.print("选择排序后的数组:");
   printAry(iAry);
  
   iAry = insertSort(iAry);
   System.out.print("插入排序后的数组:");
   printAry(iAry);


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
oracle iis7站长之家
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3