zoukankan      html  css  js  c++  java
  • 排序算法汇集

    1、冒泡排序

    冒泡排序是一种算法比较简单的排序,它的主要思想是:第一遍循环时,第一个元素和第二个元素比较,较小的放在前面,较大的数放在后面;第二个元素和第三个元素比较,较小的放在前面,较大的放在后面;直至倒数第二个元素和倒数第一个元素比较,这样最大的那个元素就会在最后的位置;同理,再进行第二次循环,倒数第二个元素的位置会存放第二大数。

    C语言的算法实现如下:

    void bubblesort( int a[], int n ) {
    int i, j;
    int temp, flag;
    for( i = 0; i < n - 1; i++ ) {
    flag = 1;
    for( j = 0; j < n - i - 1; j++ ) {
    if( a[j] > a[j+1] ) {
    temp = a[j];
    a[j] = a[j+1];
    a[j+1] = temp;
    flag = 0;
    }
    }
    if( 1 == flag ) {
    printf( "sorted end: %d\n", i ); //打印第几遍循环时,数组已有序
    break;
    }
    }
    return;
    }

    2、插入排序

    插入排序是一种稳定的排序方法。由n-1趟排序组成,对于第p趟排序,保证从0到p的位置上得元素是有序的。

    C代码实现如下:

      void insertsort( int a[], int n ) {
    int i, j;
    int temp;
    for( i = 1; i < n; i++ ) {
    temp = a[i];
    j = i;
    while( j > 0 && a[j] < a[j-1] ) {
    a[j] = a[j-1];
    j--;
    }
    a[j] = temp;
    }
    }




  • 相关阅读:
    jQuery遍历之siblings()
    命名空间
    AnsiString
    《linux内核完全注释》读书笔记 2
    mciSendString
    PeekMessage, GetMessage, PostMessage, SendMessage
    c/c++中运行外部程序或打开文件(转)
    定义基类和派生类
    复制构造函数
    让StringGrid控件显示下拉菜单
  • 原文地址:https://www.cnblogs.com/qi09/p/2215055.html
Copyright © 2011-2022 走看看