青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

不會飛的鳥

2010年12月10日 ... 不鳥他們!!! 我要用自己開發的分布式文件系統、分布式調度系統、分布式檢索系統, 做自己的搜索引擎!!!大魚有大志!!! ---楊書童

數組排序的集中方法

問題:數組排序(即按某種特定的順序排列數據,如升序或降序)是最重要的計算應用之一,銀行用帳號對所有的支票進行能夠排序,并根據排序結果準備月底的財務報告,學校學生成績管理系統用數組排序的方法將考試成績從高到低進行排名,數組排序方法很多,有直接插入排序、冒泡排序、快速排序、直接選擇排序,下面來詳細介紹這四種基本的排序方法及其實現。

1,直接插入排序:當數據表A中每個元素距其最終位置不遠,數據表A按關鍵字值基本有序,可用此方法排序較快。

2,冒泡排序法:將較小的值“上浮”到數組頂部,而較大值“下沉”到數組底部,這種排序技術要比較好幾趟,每一趟要比較連續的數組元素對,如果某對數值是按升序排序的(或者這兩個值相等),那就保持原樣,如果某對數組是按降序排列的,就要交換它們的值。

3,快速排序法:快速排序是對冒泡排序的一種改進。它的基本思想是:通過一躺排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然后再按次方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。

4,直接選擇排序法:直接選擇排序的作法是:第一趟掃描所有數據,選擇其中最小的一個與第一個數據互換;第二趟從第二個數據開始向后掃描,選擇最小的與第二個數據互換;依次進行下去,進行了(n-1)趟掃描以后就完成了整個排序過程。它比起冒泡排序有一個優點就是不用不斷的交換。

程序1:直接插入法實現對數組的排序!
#include<stdio.h>
#include<conio.h>

int main()
{
        void InsertSort(int [],int);
        int a[7]={8,10,2,3,1,7,13};
        int i;
        InsertSort(a,7);
        for(i=0;i<7;i++)
           printf("%4d",a[i]);
        getch();
}
void InsertSort(int a[],int count)
{
        int i,j,temp;
        for(i=1;i<count;i++)   
        {
           temp=a[i];
           j=i-1;
           while(a[j]>temp && j>=0)
           {
             a[j+1]=a[j];
              j--;
           }
           if(j!=(i-1))     
             a[j+1]=temp;
         }
}

程序2:冒泡法實現對數組的排序!
#include<stdio.h>
#include<conio.h>
int main()
{
         void BubbleSort(int []);
         int a[10];
         int i,j,temp;
         printf("Input tem integer numbers for a[10]:");
         for(i=0;i<10;i++)
            scanf("%d,",&a[i]);
         printf("\n");
         BubbleSort(a);
         printf("The sorted array is:\n");
            for(j=0;j<10;j++)
                 printf("%d,",a[j]);
         printf("\n\n");
         getch();
}

void BubbleSort(int array[])
{
         int i,j,temp;
           for(j=0;j<9;j++)
              for(i=0;i<9-j;i++)
                 if(array[i]>array[i+1])
                  {
                      temp=array[i];
                      array[i]=array[i+1];
                      array[i+1]=temp;
                   }
}

程序3:快速排序法實現對數組的排序!
#include<stdio.h>
#include<conio.h>
#define Max 8

int main()
{
         void QuickSort(int a[],int p,int r);
         int a[]={2,8,7,1,3,5,6,4};
         QuickSort(a,1,Max);
         printf(" The sorted array is :");
            for(int i=0;i<Max;i++)
               printf("%d,",a[i]);
         printf("\n");
         getch();
}

void QuickSort(int a[],int p,int r)
{
         int Partition(int a[],int p,int r);
         if(p<r)
         {
            int q=Partition(a,p,r);
            QuickSort(a,p,q-1);
            QuickSort(a,q+1,r);
         }
}

int Partition(int a[],int p,int r)
{
         int i=p-1;
         int x=a[r-1];
            for(int j=p;j<r;j++)
            {
               if(a[j-1]<=x)
                {
                   i=i+1;
                   int temp;
                   temp=a[j-1];
                   a[j-1]=a[i-1];
                   a[i-1]=temp;
                 }
             }
         int temp;
         temp=a[i];
         a[i]=a[r-1];
         a[r-1]=temp;
         return i+1;
}


程序4:直接選擇法實現對數組的排序!

#include<stdio.h>
#include<conio.h>

int main()
{
         void ChooseSort(int []);
         int i,j,a[10];
         printf("Input ten integer numbers for a[10]: ");
            for(i=0;i<10;i++)
               scanf("%d,",&a[i]);
         printf("\n");
         ChooseSort(a);
         printf("The sorted array is:\n");
            for(j=0;j<10;j++)
               printf("%d,",a[j]);
         printf("\n\n");
         getch();
}

void ChooseSort(int array[])
{
         int j,temp,*p1,*p2;
         for(p1=array;p1<array+9;p1++)
            {
              j++;
              for(p2=array+j;p2<=array+9;p2++)
                if(*p2<*p1)
                  {
                     temp=*p2;
                     *p2=*p1;
                     *p1=temp;
                  }
            }
}

各種排序方法的綜合比較:

一、時間性能

按平均的時間性能來分,四種類排序方法時間復雜度分別為:
直接插入排序法:O(n^2),冒泡排序法:O(n^2)快速排序法:O(nlogn),直接選擇排序法:O(n^2)
時間復雜度為O(n^2)的有:直接插入排序、起泡排序和簡單選擇排序,其中以直接插入為最好,特別是對那些對關鍵字近似有序的記錄序列尤為如此;當待排記錄序列按關鍵字順序有序時,直接插入排序和起泡排序能達到O(n)的時間復雜度;而對于快速排序而言,這是最不好的情況,此時的時間性能蛻化為O(n2),因此是應該盡量避免的情況。

二、排序方法的穩定性能

1. 穩定的排序方法指的是,對于兩個關鍵字相等的記錄,它們在序列中的相對位置,在排序之前和經過排序之后,沒有改變。
2. 當對多關鍵字的記錄序列進行LSD方法排序時,必須采用穩定的排序方法。
3. 對于不穩定的排序方法,只要能舉出一個實例說明即可。
4. 快速排序是不穩定的排序方法。

posted on 2011-06-27 13:47 不會飛的鳥 閱讀(371) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜精品久久久久久久白皮肤| 久久人人爽人人爽| 美女主播一区| 欧美顶级艳妇交换群宴| 一本色道久久综合狠狠躁篇怎么玩 | 小黄鸭精品aⅴ导航网站入口 | 午夜精品久久久久久久久| 欧美一区二区三区在线| 日韩视频久久| 欧美专区18| 亚洲一二三四区| 久久久国产精品一区二区三区| 亚洲作爱视频| 久久最新视频| 久久成人18免费网站| 欧美激情久久久久| 久久青草久久| 国产精品自拍三区| 亚洲激情小视频| 国产有码在线一区二区视频| 亚洲精品视频免费| 亚洲高清久久| 久久国产视频网站| 欧美一区二区大片| 欧美日韩一区二区免费视频| 欧美电影在线观看| 国内精品久久久久伊人av| 一区二区高清视频在线观看| 亚洲精品小视频在线观看| 久久人人97超碰精品888| 久久精品二区三区| 国产精品视频xxx| 一区二区三区国产在线| 亚洲精选在线| 欧美成在线视频| 欧美一区二区在线看| 亚洲国产欧美国产综合一区| 正在播放亚洲| 欧美mv日韩mv国产网站app| 国产精品一区二区在线| 欧美人成网站| 欧美一区午夜精品| 欧美精品一卡| 亚洲国产精品电影在线观看| 亚洲第一在线视频| 久久久久久尹人网香蕉| 久久免费精品日本久久中文字幕| 国产伦精品一区二区三区四区免费| 99精品黄色片免费大全| 制服丝袜亚洲播放| 欧美日韩三级电影在线| 99视频精品全部免费在线| 亚洲婷婷综合色高清在线| 欧美日韩国产成人| 一区二区三区产品免费精品久久75| 在线视频欧美日韩| 欧美日韩天天操| 亚洲视频999| 欧美亚洲免费| 黄色资源网久久资源365| 久久综合九色| 亚洲区中文字幕| 亚洲靠逼com| 欧美日韩情趣电影| 亚洲尤物在线视频观看| 久久av一区二区三区| 黄色精品一区| 欧美电影打屁股sp| 中文精品视频| 久久理论片午夜琪琪电影网| 亚洲国产精品va在线观看黑人| 欧美激情视频在线免费观看 欧美视频免费一 | 久久久久国色av免费看影院| 国产视频在线观看一区| 久久偷窥视频| 亚洲精品视频在线观看网站| 午夜精彩视频在线观看不卡 | 99在线精品视频| 久久国产色av| 亚洲人成在线观看网站高清| 欧美性猛交xxxx乱大交蜜桃| 欧美专区一区二区三区| 亚洲人成77777在线观看网| 亚洲欧美日韩精品在线| 欲色影视综合吧| 欧美色精品在线视频| 亚洲欧美中文在线视频| 欧美电影免费观看网站| 久久免费偷拍视频| 国产精品揄拍500视频| 一区二区三区视频免费在线观看 | 亚洲伊人伊色伊影伊综合网| 久久久综合免费视频| 亚洲精品在线观看免费| 一区二区欧美国产| 欧美日韩中文在线观看| 久久成人免费日本黄色| 亚洲国产精品欧美一二99| 欧美亚洲日本网站| 日韩视频精品在线观看| 国产真实乱偷精品视频免| 欧美日韩国产在线观看| 久久xxxx精品视频| 99视频精品在线| 欧美a级片网站| 欧美在线一区二区| 在线一区二区视频| 亚洲国产成人在线视频| 国产午夜亚洲精品羞羞网站| 欧美日韩在线三区| 欧美 亚欧 日韩视频在线| 久久影院亚洲| 另类亚洲自拍| 国产精品网红福利| 亚洲午夜久久久| 另类春色校园亚洲| 亚洲男女自偷自拍| 91久久亚洲| 黄色亚洲大片免费在线观看| 国产精品亚洲综合久久| 欧美日韩视频| 欧美成人三级在线| 久久久亚洲欧洲日产国码αv| 亚洲欧美电影在线观看| 夜夜嗨一区二区| 亚洲精品日韩久久| 亚洲国产精品一区二区第一页| 久久蜜桃资源一区二区老牛 | 亚洲国产精品久久久久婷婷884| 久久高清国产| 欧美一区二区三区电影在线观看| 亚洲美女视频| 亚洲精品综合精品自拍| 在线播放精品| 亚洲大胆视频| 亚洲国产一区在线| 亚洲经典视频在线观看| 亚洲精品久久久久中文字幕欢迎你 | 乱码第一页成人| 久久久精品性| 久久精品伊人| 久久亚洲欧洲| 理论片一区二区在线| 久久精品国产一区二区三| 久久成人国产| 玖玖玖国产精品| 免费在线欧美视频| 欧美激情精品久久久六区热门 | 国内一区二区在线视频观看| 国产一区欧美| 亚洲成人在线观看视频| 亚洲韩国精品一区| 亚洲精选中文字幕| 亚洲一区二区三区精品在线观看| 亚洲在线观看免费视频| 久久精品视频va| 国产欧美日韩亚州综合| 国产精品二区在线| 国产精品一级在线| 韩国亚洲精品| 亚洲国产精品久久久久秋霞影院| 91久久在线| 亚洲尤物精选| 久久裸体艺术| 91久久极品少妇xxxxⅹ软件| 一区二区黄色| 香蕉尹人综合在线观看| 久久在线精品| 欧美日韩一二三区| 国产视频精品xxxx| 亚洲激情在线观看| 亚洲综合激情| 欧美freesex8一10精品| 99精品欧美一区二区三区| 性色av一区二区三区红粉影视| 久久精品欧洲| 欧美日韩一区精品| 激情久久影院| 亚洲一区二区黄| 免费观看日韩av| 亚洲视频一二| 女人色偷偷aa久久天堂| 国产欧美日韩伦理| 亚洲美女视频在线免费观看| 久久se精品一区精品二区| 欧美激情二区三区| 午夜视频在线观看一区| 欧美精品 国产精品| 国产亚洲成精品久久| a4yy欧美一区二区三区| 久久男女视频| 亚洲一区二区三区视频| 欧美国产在线观看| 狠狠久久婷婷| 亚洲欧美日本另类| 亚洲国产一区二区三区在线播| 午夜影院日韩| 国产精品国产三级国产专区53 | 久久se精品一区精品二区| 欧美日韩久久精品|