Java程序实现冒泡排序、直接排序、插入排序方法

Java程序实现冒泡排序、直接排序、插入排序方法

    个人对冒泡排序、直接排序、插入排序方法整理了下,反复实验过了,运行木有问题 ,只要将方法引用到数组中即可对数组进行排序了。每个方法中显示结果方法各位自己写吧 。

  
/**
 * 冒泡排序
 * @param num
 */
 public void GetMaoPao(int[] num) {
   int x = 1;
   for (int i = 1; i < num.length; i++) {
     for (int j = 0; j < num.length - i; j++) {
       if (num[j] > num[j + 1]) { // 遍历数组,遇到比自己大的数就互换位置
         int temp = num[j + 1];
         num[j + 1] = num[j];
         num[j] = temp;
       }
     }
     // 显示结果
     System.out.print("第" + x + "次排序结果:");
     ShowGet(num);
     x++;
   }
 }
 
 /**
  * 直接排序
  *
  * @param num
  */
  public void GetZhiJie(int[] num) {
    int x = 1;
    for (int i = 0; i < num.length; i++) {
      int index = 0;
      for (int j = 1; j < num.length - i; j++) {
        if (num[j] > num[index]) // 找出数组中最大值
          index = j;
        }
        // 将依次找出数组中大元素向后调
        int temp = num[num.length - i - 1];
        num[num.length - i - 1] = num[index];
        num[index] = temp;
        // 显示结果
        System.out.print("第" + x + "次排序结果:");
        ShowGet(num);
        x++;
     }
  }
 
 
 /**
  * 插入排序
  *
  * @param num
  */
  public void GetChaRu(int[] num) {
   int x = 1;
       for (int i = 1; i < num.length; i++) {
            for (int j = 0; j < i; j++) {
                if (num[i] < num[j]) { // 比较相邻两元素,小的向前移
                    int temp = num[i];
                    num[i] = num[j];
                    num[j] = temp;
                }
            }
            // 显示结果
            System.out.print("第" + x + "次排序结果:");
            ShowGet(num);
            x++;
      }
  }
 
显示的结果: 
 
冒泡排序:
思路:如下表,两相邻元素相比较,大的后移,小的前移,即相邻元素换位。
原数组:
21 6 69 74 29 92 25 12 49 4
数组内元素移次移位:
第1次排序结果:【6 21 69 29 74 25 12 49 4】 92
第2次排序结果:【6 21 29 69 25 12 49 4 】74 92
第3次排序结果:【6 21 29 25 12 49 4】 69 74 92
第4次排序结果:【6 21 25 12 29 4 】49 69 74 92
第5次排序结果:【6 21 12 25 4 】29 49 69 74 92
第6次排序结果:【:6 12 21 4】 25 29 49 69 74 92
第7次排序结果:【6 12 4 】21 25 29 49 69 74 92
第8次排序结果:【6 4】 12 21 25 29 49 69 74 92
第9次排序结果:【4】 6 12 21 25 29 49 69 74 92
----------------------------

直接排序:
思路:如下表,遍历数组,找到最大元素,直接将大元素依次调到前大元素前面,所调至位置元素移至大元素原位置。
原数组:
8 79 32 10 48 41 28 70 20 14
数组内元素移次移位:
第1次排序结果:【8 14 32 10 48 41 28 70 20】 79
第2次排序结果:【8 14 32 10 48 41 28 20 】70 79
第3次排序结果:【8 14 32 10 20 41 28 】48 70 79
第4次排序结果:【8 14 32 10 20 28】 41 48 70 79
第5次排序结果:【8 14 28 10 20】 32 41 48 70 79
第6次排序结果:【8 14 20 10 】28 32 41 48 70 79
第7次排序结果:【8 14 10】 20 28 32 41 48 70 79
第8次排序结果:【8 10 】14 20 28 32 41 48 70 79
第9次排序结果:【8 】10 14 20 28 32 41 48 70 79
第10次排序结果:8 10 14 20 28 32 41 48 70 79
----------------------------

插入排序:
思路:如下表,括号外数字与括号内数组比较,经比较过后,将自己插入相应位置,其它元素后移;
原数组:
43 1 53 35 83 27 14 30 65 78
数组内元素移次移位:
第1次排序结果:【1】 43 53 35 83 27 14 30 65 78
第2次排序结果:【1 43】 53 35 83 27 14 30 65 78
第3次排序结果:【1 35 43】 53 83 27 14 30 65 78
第4次排序结果:【1 35 43 53】 83 27 14 30 65 78
第5次排序结果:【1 27 35 43 53 83】 14 30 65 78
第6次排序结果:【1 14 27 35 43 53 83】 30 65 78
第7次排序结果:【1 14 27 30 35 43 53 83】 65 78
第8次排序结果:【1 14 27 30 35 43 53 65 83】 78
第9次排序结果:【1 14 27 30 35 43 53 65 78 83】
----------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值