排序算法

冒泡排序
用二重循环实现冒泡排序

int[] nums = {4,5,7,4,2};
for (int i=0;i<nums.length-1;i++){
  for (int j=0;j<nums.length-1-i;j++){
    if (nums[j]>nums[j+1]){
      int temp = nums[j];
      nums[j] = nums[j+1];
      nums[j+1] = temp;
    }
  }
}
for (int num:nums){
   System.out.print(num);
}

  速记口诀:
  N个数字类排队
  两两相比小靠前
  外层循环N-1
  内层循环N-1-i

  共比较次数: n(n-1)/2

直接插入排序

int [] data = {23,45,16,7,42};
for (int i=1; i<data.length; i++){
  int currentData = data[i];
  int temp = i;
  while (temp>0 && data[temp-1]>currentData){
    //前一位大于后一位,前一位元素赋值给后一位
    data[temp] = data[temp-1];
    temp --;
  }
  data[temp] = currentData; //交换数据
}

 

posted @ 2017-06-18 23:08  好奇害死猫+1  阅读(146)  评论(0编辑  收藏  举报