面试准备——排序算法

冒泡排序

  从数组中的第一个元素开始到最后一个元素,将相邻两个元素进行比较,若数组左端的元素大于数组有短的元素,

则交换两元素的位置,然后再对该数组剩下的元素进行冒泡排序

// 冒泡排序
void BubbleSort(int arr[], int length)
{
  for (int i = 0; i < length; i++)
  {
    for (int j = 0; j < length - i - 1; j++)
    {
      if (arr[j] > arr[j + 1])
      {
        int temp;
        temp = arr[j + 1];
        arr[j + 1] = arr[j];
        arr[j] = temp;
       }
    }
   }
}

 

选择排序

首先在未排序数组中找到最小的数据,将其放在首位,然后再在剩下的数组中找到最小的数,将其放在首位

直到所有的元素排序完成

public static int[] selectionSort(int[] array) {
  if (array.length == 0)
    return array;
  for (int i = 0; i < array.length; i++) {
    int minIndex = i;
    for (int j = i; j < array.length; j++) {
      if (array[j] < array[minIndex]) //找到最小的数
        minIndex = j; //将最小数的索引保存
     }
      int temp = array[minIndex];
      array[minIndex] = array[i];
      array[i] = temp;
    }
  return array;
}

posted @ 2020-05-19 21:13  SWGS  阅读(56)  评论(0)    收藏  举报