第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

java常見(jiàn)數(shù)據(jù)算法_插入排序

標(biāo)簽:
Java

插入排序的核心思想:
抽出一个元素,在其前面的元素中找到适当的位置进行插入。
其参考实现如下:
package com.zcp.ch04;

/**


  • @author Administrator

  • 冒泡排序的实现
    */
    public class InsertArray {

    //数组
    private long[] arr = null;

    //数组中有效数据的大小
    private int elems;
    public InsertArray() {
    arr = new long[50];
    }

    public InsertArray(int length){
    arr = new long[length];
    }

    /**

    /**

    }

    /***

    }

    /***

    /**

    }

    /**

    • 该方法主要是变量数组并显示
      */
      public void disPlay(){
      for (int i = 0; i < elems; i++) {
      System.out.print(arr[i]+ " " );
      }
      System.out.println();
      }

    • 插入排序的算法

    • 插入一个元素,在其前面的元素中找到适当的位置进行插入

    • 分析:从插入排序的定义可以看出,插入一个元素在其前面的元素中找到合适的位置进行插入

    • 所以:我们在找这个元素的时候需要从第二个元素开始找(数组的下标为1),然后依次找后面的元素
      */
      public void insertSort(){

      long keyValue = 0;
      //这里定义i的目的就是我们需要找的元素的坐标
      for (int i = 1; i < elems; i++) {
      //获取到我们要查找的一个元素
      keyValue  = arr[i];
      int j = 0;
      for (j = i; ((j > 0) && (arr[j-1] > keyValue)); j--) {
      //通过里面的判断arr[j-1]>keyValue 的值的时候,将整体右移,空出最左边的位置
      arr[j] = arr[j-1];
      }
      //将选择的数据插入到最左边
      arr[j] = keyValue;
      }


    • @param oldValue

    • @param newValue

    • @return 如果修改成功返回true,修改失败返回false
      */
      public boolean changeValue(long oldValue,long newValue){
      int key = find(oldValue);
      if(key == -1){
      System.out.println("需要修改的数据不存在,修改失败");
      return false;
      }
      arr[key] = newValue;
      return true;
      }

    • 删除数据的操作,删除成功返回true,删除失败返回false

    • @param value
      */
      public boolean delete(long value){

      int key = find(value);
      if(key == -1){
      System.out.println("删除数据失败,未查找到要删除的数据");
      return false;
      }
      for (int i = key; i < elems; i++) {
      arr[i] = arr[i+1];
      }
      elems--;
      return true;

    • 查找指定的数据,如果能够查找到则返回数组的坐标,否则返回-1.

    • @param value

    • @return
      */
      public int find(long value){
      int i = 0;
      for(i=0;i<elems;i++){
      if(value==arr[i])
      break;
      }

      if(i >(elems-1)){
      return -1;
      }

      return i;


    • 插入数据的操作

    • @param value
      */
      public void insert(long value){
      arr[elems] = value;
      elems++;
      }

}
测试Demo如下:
package com.zcp.ch04;

public class TestInsertMain {

public static void main(String[] args) {    InsertArray bubbleArray = new InsertArray();    bubbleArray.insert(10);    bubbleArray.insert(500);    bubbleArray.insert(80);    bubbleArray.insert(2);    bubbleArray.insert(23);    bubbleArray.disPlay();    bubbleArray.insertSort();;;    System.out.println("选择排序后的数据如下:");    bubbleArray.disPlay();}

}

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消