排序之直接排序(邊生成邊排序)

2022-08-20 04:33:11 字數 826 閱讀 2594

一、原理:

假設陣列為numarr[4],並且陣列第乙個元素已經賦值為3,numarr[0] = 3;

1.假設產生乙個數temp = 5,若要在插入陣列時排序,則先於numarr[0]比較,temp > numarr[0]; 則5應該插入在3後面,即numarr[1] = 5;

2.假如temp = 1,temp < numarr[0]; 則1應插在3之前,同時3和以後的元素都要向後一位,即

for (int i =  4; i > 0; i--) ;78

for (int i = 0; i < 10; i ++)

11 printf("\n"

);12

1314

15//

在第四個元素前插入乙個元素20,從後往前

1617

for (int i = 9; i > 3; i --)

20 stunum[3] = 20;21

22for (int i = 0; i < 10; i ++)

2526

27//

刪除第二個元素的值,從前往後

28for (int i = 1; i < 10; i ++)

31 stunum[9] = 0;32

33 printf("\n"

);34

for(int i = 0; i < 10; i ++)

3738

39return0;

4041 }

排序之直接排序

這是乙個很簡單的排序 思路很簡單 先在未排序的數中找出最小值,然後放入已排序的末端 如 9 8 7 6 5 4 3 2 1 先是找到最小數1 然後陣列變為 1 8 7 6 5 4 3 2 9 然後在未排序數中找到最小值 2 放入已排序數的末端 變為 1 2 7 6 5 4 3 9 8 如此不斷迴圈最...

排序演算法之直接選擇排序

直接選擇排序是將整個待排序序列分為兩部分,一部分為有序 最開始有序序列為空 一部分為無序 最終無序序列為空 有序序列中的數都不大於無序序列中的數。它的過程是每次都在無序中尋找乙個最小的數,然後將其與無序序列的第乙個數交換,並併入有序序列。則有序序列長度增1,無序序列長度減1。比如 對r 0 n 陣列...

排序演算法之直接選擇排序

直接選擇排序是將整個待排序序列分為兩部分,一部分為有序 最開始有序序列為空 一部分為無序 最終無序序列為空 有序序列中的數都不大於無序序列中的數。它的過程是每次都在無序中尋找乙個最小的數,然後將其與無序序列的第乙個數交換,並併入有序序列。則有序序列長度增1,無序序列長度減1。比如 對r 0 n 陣列...