一.bubble sort(氣泡排序):相鄰的兩個數進行大小比較符合要求左右位置交換。
void bubble(int a,intlengh)
}i=lengh-nflag;
nflag=0
; j=0
; }
}int
main()
; bubble(a,
sizeof(a)/sizeof(a[0
]));
for(i;i遍歷陣列
return0;
}
不用中間變數實現兩個相同型別的變數交換:1.int a13;int b=5;a=a+b;b=a-b;a=a-b.
^通過異或相同的值等於原來的值。a,b不能指向乙個空間。
氣泡排序是対已全部排好序的陣列排序最快的
判斷當前排序是否穩定:兩個鍵值(元素本身的值)相同的元素在排序前後相對位置沒有發生改變稱當前排序為穩定排序。
o(1)代表常量空間複雜度
排序名稱 最好時間複雜 平均時間複雜度度 最壞時間複雜度 空間複雜度 是否穩定
bubble o(n) o(n^2) o(n^2) o(1) 穩定
select(選擇排序):
voidselect(int a,int
length)
}if(dex!=i)//
dex!=i說明i後面有比a[i]小的交換他們的值
}}
排序名稱 最好時間複雜 平均時間複雜度度 最壞時間複雜度 空間複雜度 是否穩定
select o(n^2) o(n^2) o(n^2) o(1) 不穩定
排序 氣泡排序與選擇排序
最近複習大學學過的演算法,這裡做個筆記。排序,我們學過 這裡需要了解什麼是時間複雜度,什麼是空間複雜度。簡單而言,時間複雜度指執行的次數,空間複雜度指消耗的記憶體。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序 如從大到小 首字母從z到a 錯誤就把他們交換過來。走訪元素的工作是重複地...
選擇排序與氣泡排序
今早心血來潮,又想看看氣泡排序.於是乎度娘一番,找到了度娘給我的這篇文章,前面的文字描述還是簡單易懂的,可惜給出的 示範有些文不對題.於是乎又wiki一番.發現上文給出的 形似選擇排序,於是總結如下 我們假設有乙個陣列 624159 對應的索引也就是 0 5,如果我想描述第二個位置,也就是數字2的位...
選擇排序與氣泡排序
選擇排序 static void sort1 int arr var temp arr i arr i arr min arr min temp 氣泡排序 static void sort2 int arr static void main string args sort1 arr foreach...