一、選擇排序法
1、預設第乙個數已經排序,且預設第乙個數為最小的數,定義min用來存放最小的數在陣列中的位置。
2、用min指向的數(即第乙個數)和第二個數比較,如果第乙個數比第二個數小,min指向不變(為0);
如果第乙個數比第二個數大,min指向第二個數(為1);
3、用min指向的數和第三個數比較,如果min指向的數比第三個數小,min指向不變(還為0);
如果min指向的數比第三個數大,min指向第三個數(為2);
4、依次用min指向的數和下乙個比較,直到陣列的數全部比較完,此時min指向的數為最小的數。
5、把min指向的數放在陣列的第乙個位置,即和陣列第乙個數交換數值。
6、此時min指向陣列第二個數,再按上面的方法依次和後面的數比較,直到求出第二個min,和陣列第二個數交換,直到所有的數排序
例項:int arr = new int ;//定義陣列
for (int i = 0; i < arr.length; i++)//i=0,min=i,從第乙個數開始往後依次比較
}//第一次全部比較完成得到min後,把min和陣列第乙個數交換數值
int number = arr[i];
arr[i] = arr[min];
arr[min] = number;
}//遍歷輸出陣列
foreach (int i in arr)
二、氣泡排序法
氣泡排序效率相較於其它幾種來說效率有點低,但也是一種基礎演算法,而氣泡排序又有兩種演算法。
第一種:
1.比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
3.針對所有的元素重複以上的步驟,除了最後乙個。
4.持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
注釋:第一次比較第
一、二對,第二次比較第
二、三對,直到比較完整個陣列
缺點,這種演算法效率低,需要重複進行比較。
例子:int arrayint = new int ;//定義陣列
//冒泡法排序例子1
for (int i = 0; i < arrayint.length - 1; i++)//i=0,min=i,從第乙個數開始往後依次比較}}
第二種:
1、用第乙個數字和第二個數字比較,如果第乙個數大於第二個數,交換兩個數值。
2、用第乙個數字和第三個數字比較,如果第乙個數大於第三個數,交換兩個數值。
3、重複以上步驟,直到第乙個數和陣列中所有的數比較完。
4、用第二個數字和第三個數字比較,如果第二個數字大於第三個數字,交換兩個數值。
5、重複以上步驟直到全部比較完畢
這種演算法比上面的冒泡演算法效率高。
例子:int arrayint = new int ;//定義陣列
for (int i = 0; i < arrayint.length ; i++)}}
//隨機數組
int arrayint = new int[10];
random ro = new random();
for (int i = 0; i < arrayint.length; i++)
}arrayint[i] = numberrandom;
system.console.writeline(arrayint[i]);
}//選擇排序法
int min;//用於存放最小的數的下標
int numbermin = 0;
for (int i = 0; i < arrayint.length; i++)//用於遍歷整個陣列
}numbermin = arrayint[min];
arrayint[min] = arrayint[i];
arrayint[i] = numbermin;
}//插入排序法第一種
/*for (int i = 0; i < arrayint.length; i++)
}}*/
//插入排序法第二種
/*for (int i = 0; i < arrayint.length; i++)
arrayint[j] = number;}*/
//氣泡排序法第一種,效率比較低
/* for (int i = 0; i < arrayint.length ; i++)
}}*/
//int arr = new int ;//定義陣列
//冒泡法排序第二種
/* for (int i = 0; i < arrayint.length - 1; i++)//i=0,min=i,從第乙個數開始往後依次比較
}}*/
//遍歷輸出陣列
foreach (int i in arrayint)
排序方法總結
mysort.h ifndef mysort h included define mysort h included 交換排序 氣泡排序,快速排序 void bubblesort int arr,int arrlen int slipforquicksort int arr,int arrleft,...
排序方法總結
第乙個學會的排序演算法就是冒泡演算法啦,聽說有些傢伙連冒泡演算法都寫不出來 偷笑.冒泡演算法的時間複雜度是o n2 和選擇排序的時間複雜度一樣。這是最基本的排序演算法了,時間複雜度這麼高,自然用處也不會多。選擇排序是冒泡演算法昇華了,氣泡排序是兩個兩個隔空辯論打擂,誰大誰到冠軍座椅繼續接受挑戰,內層...
排序方法總結
選擇排序 public static void selectsort int arr 氣泡排序 public static void bubblesort int arr 插入排序 public static void insertsort int arr 附 swap的兩種方法 swap方法一 p...