排序方法總結

2021-08-07 15:11:39 字數 2443 閱讀 5562

一、選擇排序法

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...