四種排序演算法

2021-09-30 00:04:57 字數 1268 閱讀 7895

今天整理了一下幾種常見的排序:冒泡,選擇,插入,和快速排序演算法實現。

第一種,氣泡排序:

具體實現:相鄰的兩個元素比較,後面的元素大於前面的元素,交換位置。

public static int maopaosort(int arr)}}

return arr;

}

選擇排序具體實現:每次把陣列中第乙個元素作為最小值(這裡是最小值),然後在遍歷其餘陣列之後做相互比較,小於最小值的就交換索引下標,最後,再與第乙個元素進行交換。以此類推。得到乙個排序後的陣列

public static int selectsort(int arr)

}int temp=arr[i];

arr[i]=arr[min];

arr[min]=temp;

}return arr;

}

插入排序具體實現:每個陣列可以分為預插入陣列(右邊),待插入陣列(左邊第乙個元素,後續會增長),每次取出右邊元素儲存在乙個臨時變數中,然後和左邊陣列元素比較,小於則插入左邊,大於則插入右邊。**實現

public static int insert(int arr)else

}arr[j+1]=temp;

}return arr;

}

其中第二層的for迴圈可以替換:

int j=i-1;

while (j>=0&&arr[j]>temp)

快速排序具體實現:在乙個陣列中定義兩個索引下標i,j分別為最左邊的元素和最右邊的元素。並選擇第乙個元素為基數,右邊小於基數停止,和左邊大於基數則停止,最後交換兩者元素。然後又在小的子區間中進行。

public static void quicksort(int arr,int low,int high)

i=low;

j=high;

//temp就是基準位

temp = arr[low];

while (i=arr[i]&&i//如果滿足條件則交換

if (i}

//最後將基準為與i和j相等位置的數字交換

arr[low] = arr[i];

arr[i] = temp;

//遞迴呼叫左半數組

quicksort(arr, low, j-1);

//遞迴呼叫右半陣列

quicksort(arr, j+1, high);

}

排序演算法(四種)

氣泡排序是非常容易理解和實現,以從小到大排序舉例 設陣列長度為n。氣泡排序從前往後遍歷和從後往前遍歷一樣的原理。目標陣列 3,5,2,6,4,9,7,12,11 從前往後 第一波 從第乙個數開始,如果第乙個數大於第二個數,就把這兩個數調換位置,否則保留之前的排列,第二次把第二個和第三個數比較,比較方...

C 四種排序演算法

c 四種排序演算法 sabine 本文介紹了c 的四種排序演算法 氣泡排序 選擇排序 插入排序 和希爾排序 氣泡排序 using system namespace bubblesorter public class mainclass bubblesorter sh new bubblesorter...

C 四種排序演算法

四種排序演算法 氣泡排序 選擇排序 插入排序和希爾排序 氣泡排序 using system namespace bubblesorter j public class mainclass bubblesorter sh new bubblesorter sh.sort iarrary for int...