排序

1、排序與查找的關(guān)系

排序是查找的前提。

排序時,要考慮時間、空間、穩(wěn)定性。

2、插入排序

3、選擇排序

4、歸并排序

5、快速排序

先找到某一個元素(假定是第一個元素)的最終位置,然后把數(shù)據(jù)分為兩半。然后在兩半分別再找到某一個元素的最終位置……——遞歸

經(jīng)過一次排序,只能確定一個元素的最終位置,其他元素仍然是無序的。

例:

9 0 8 10 -5 2 13 7

9:
l:比它大的賦值,比它小的移動;
h:比它小的賦值,比它大的移動。

5 2 6 8 4 3 7
第一次:
3 2 4 5 8 6 7

程序:

#include <stdio.h>

void QuickSort(int *, int, int);
int FindPos(int *, int, int);

int main(void)
{
    int a[6] = {2, 1, 0, 5, 4, 3};
    int i = 0;

    QuickSort(a, 0, 5); 
    // 第2個參數(shù):第1個元素的下標(biāo) 
    // 第3個參數(shù):最后一個元素的下標(biāo) 

    for(i=0; i<6; ++i)
    {
        printf("%d ", a[i]);
    }
    printf("\n");

    return 0;
}

void QuickSort(int * a, int low, int high)
{
    int pos = 0;

    if(low < high)
    {
        pos = FindPos(a, low, high); // 找到該元素的最終位置 
        QuickSort(a, low, pos-1);
        QuickSort(a, pos+1, high);
    }
}

int FindPos(int * a, int low, int high)
{
    int val = a[low];

    while(low < high)
    {
        while(low < high && a[high] >= val)
        {
            --high;
        }
        a[low] = a[high];
    
        while(low < high && a[low] <= val)
        {
            ++low;
        }
        a[high] = a[low];
    } 
    // while結(jié)束之后,low和high一定是相等的
    // 這個值就是val的最終位置 

    a[low] = val;

    return low; 
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,303評論 0 52
  • 概述:排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    每天刷兩次牙閱讀 3,828評論 0 15
  • 排序的基本概念 在計算機(jī)程序開發(fā)過程中,經(jīng)常需要一組數(shù)據(jù)元素(或記錄)按某個關(guān)鍵字進(jìn)行排序,排序完成的序列可用于快...
    Jack921閱讀 1,571評論 1 4
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個記錄插入到已排序好...
    依依玖玥閱讀 1,354評論 0 2
  • 落木蕭蕭凋朱顏 獨(dú)賞孤芳空自憐 西風(fēng)送辭南歸燕 何日春回復(fù)雙飛
    星塵夢羽閱讀 393評論 7 5

友情鏈接更多精彩內(nèi)容