2.常見算法的時(shí)間復(fù)雜度

一.冒泡算法
自己的理解:
對(duì)于n個(gè)數(shù),
第1趟:比較n-1次才能找出最大(最?。┑臄?shù)字,
第2趟:比較n-2次,
第3趟:比較n-3次
... ...
第n-1趟: 比較1次。(完結(jié))

特點(diǎn):每趟比較都是相鄰的兩個(gè)數(shù)比較,然后把兩個(gè)之中較大(升序)的放在后面,一趟完畢,最大的數(shù)字就被找出來了,下次不再比較。
對(duì)應(yīng)的代碼:

mian(){
   int a[10],i,j; 
   int t; //臨時(shí)變量 
  
   /*輸入10個(gè)數(shù)據(jù)*/ 
   for(i=0;i<10;i++){ scanf("%d",&a[i]); } 
   
   /*開始冒泡排序*/ 
   for(j=0;j<9;j++){ 
          for(i=0;i<9-j;i++) 
                 if(a[i]<a[i+1]) { 
                     /*相鄰元素比較,交換大的放前面*/
                     t=a[i]; 
                     a[i]=a[i+1]; 
                     a[i+1]=t; 
                } 
          }
   } 
   //此處的9,實(shí)質(zhì)是n-1.
 }

//時(shí)間復(fù)雜度O(n^2)



二.選擇排序
原理:
選擇排序很簡(jiǎn)單,他的步驟如下:

從左至右遍歷,找到最小(大)的元素的下標(biāo),然后與第一個(gè)元素交換。
從剩余未排序元素中繼續(xù)尋找最?。ù螅┰兀缓笈c第二個(gè)元素進(jìn)行交換。
以此類推,直到所有元素均排序完畢。

之所以稱之為選擇排序,是因?yàn)槊恳淮伪闅v未排序的序列我們總是從中選擇出最小的元素。

 public void sort(){ 
       for(int i = 0; i < arraytoSort.length - 1 ;  i++){
            int min = i;
            int temp;           
            //找出最小值的下標(biāo)
            for(int j = i + 1;  j < arraytoSort.length ; j++){
                if(arraytoSort[j]  < arraytoSort[min]){
                    min = j;
                 }
            }
            //交換i與min的數(shù)組元素,下次+1不再比較了
            temp = arraytoSort[min];
            arraytoSort[min] = arraytoSort[i];
            arraytoSort[i] = temp;
        }
    }

//時(shí)間復(fù)雜度O(n^2).

三.常用數(shù)據(jù)結(jié)構(gòu)的時(shí)間復(fù)雜度
干貨分享:http://blog.csdn.net/stardhb/article/details/50453127

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

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

  • 總結(jié)一下常見的排序算法。 排序分內(nèi)排序和外排序。內(nèi)排序:指在排序期間數(shù)據(jù)對(duì)象全部存放在內(nèi)存的排序。外排序:指在排序...
    jiangliang閱讀 1,514評(píng)論 0 1
  • 排序的基本概念 在計(jì)算機(jī)程序開發(fā)過程中,經(jīng)常需要一組數(shù)據(jù)元素(或記錄)按某個(gè)關(guān)鍵字進(jìn)行排序,排序完成的序列可用于快...
    Jack921閱讀 1,565評(píng)論 1 4
  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,297評(píng)論 0 52
  • 概述:排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    每天刷兩次牙閱讀 3,818評(píng)論 0 15
  • 一、 單項(xiàng)選擇題(共71題) 對(duì)n個(gè)元素的序列進(jìn)行冒泡排序時(shí),最少的比較次數(shù)是( )。A. n ...
    貝影閱讀 9,416評(píng)論 0 10

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