zoukankan      html  css  js  c++  java
  • 三种简单排序

    1.冒泡排序

    冒泡排序是一种简单的排序算法,其基本思想如下:

    1)从第一个开始起,比较相邻的两个元素的大小,如果前一个比后一个大,则进行交换(也就是小的冒上去)。

    2)然后再和之前相邻元素进行比较,若小,则冒上去。

    2)重复以上操作,直到最后一个元素。

     1 public static void BubbleSort(long[] arr){
     2         long tmp = 0;
     3         for(int i=0;i<arr.length-1;i++){
     4             for(int j=arr.length-1;j>i;j--){
     5                 if(arr[j] < arr[j-1]){
     6                     tmp = arr[j];
     7                     arr[j]=arr[j-1];
     8                     arr[j-1]=tmp;
     9                     
    10                 }
    11             }
    12         }
    13     }

    2.选择排序

    选择排序也是一种简单的排序算法,其基本思想如下:

    1)外层进行第一趟循环,将第一个元素作为临时比较元素,内层循环则找出最小的元素,进行交换。

    2)外层进行第二趟循环,将第二个元素作为临时比较元素,内层循环则找出最小的元素,进行交换。

    3)重复上述操作,直到循环结束。

     1 public static void SelectSort(long[] arr){
     2         int k=0;
     3         long tmp = 0;
     4         for(int i=0;i<arr.length-1;i++){
     5             k=i;
     6             for(int j=i;j<arr.length;j++){
     7                 if(arr[j]<arr[k]){
     8                     k=j;
     9                 }
    10             }
    11             tmp = arr[i];
    12             arr[i]=arr[k];
    13             arr[k]=tmp;
    14         }
    15     }

    3.插入排序

    插入排序亦是一种简单的排序算法,它的基本思想如下:

    1)从第二个元素开始循环(因为是从前往后开始于之前的比较进行插入)将其作为临时比较元素,然后将前一个元素和临时比较元素进行比较。

    2)如果前一个元素比临时比较元素大,则将前一个元素赋给后一个元素。

    3)然后将临时比较元素赋到最前面。

     1 public static void InsertSort(long[] arr){
     2         int tmp = 0;
     3         for(int i=1;i<arr.length;i++){
     4             tmp = arr[i];
     5             int j=i;
     6             while(j>0 && arr[j]>=tmp){
     7                 arr[j]=arr[j-1];
     8                 j--;
     9             }
    10             arr[j]=tmp;
    11         }
    12     }
  • 相关阅读:
    高精度入门(减法、加法、乘法)之 CODE[VS] 3115、3116、3117
    DP经典 之 CODE[VS] 1576 最长严格上升子序列 (O(n^2) 和 O(nlogn))
    CODE[VS] 1098 均分纸牌 ( 2002年NOIP全国联赛提高组)
    C++ string 与 int 等类型 的相互转换
    组合数学 + 大数乘法 + 大数除法 之 hdu 1261 字串数
    自然语言理解 之 统计词频
    Leetcode_10【正则表达式匹配】
    01——字符串反转
    Leetcode_09【回文数】
    Leetcode_07【整数反转】
  • 原文地址:https://www.cnblogs.com/fxust/p/4555226.html
Copyright © 2011-2022 走看看