直接插入排序和簡單選擇排序

2021-09-26 06:39:14 字數 888 閱讀 3578

簡單選擇排序的思想:

簡單選擇排序的基本思想是每一趟在 n-i+1個記錄中選取關鍵字最小的記錄作為有序序列的第i個記錄

直接插入排序思想:

基本操作是將乙個記錄插入到已經排好序的有序表中,從而得到乙個新的,記錄加1的有序表。

兩者都是第二for迴圈都是不斷查詢,乙個是不斷往後找,乙個在當前i,不斷往前找。

簡單選擇排序,就是在當前選擇i的時候,從後序的n-i+1個記錄中查詢最小的那個數,插入當前位置。

// 簡單選擇排序: 每一趟在n-i+1個記錄中選擇關鍵字最小的記錄 作為有序序列的第i個記錄。

public void selectsort(int nums)

if(i!=min)

}prints(nums);

}

直接插入查詢,就是當前i位置時,不斷往前找乙個合適的(已經有序的位置插入).

int temp = nums[i],

for(j = i-1;j>=0;j–)

if(nums[j]>temp)

nums[j+1] = nums[j];//移動元素

else

break; //找到當前j 是小於 i位置的乙個元素,所以插入nums[j+1] = temp;

// 直接插入排序

public void insertsort(int s)else

}// 插入

s[j+1] = temp;

}prints(s);

}

不同:很容易弄混.把直接插入排序,當成簡單選擇排序,

因名知意,選擇就是從後選擇,選擇最小的元素,插入當前位置。

而插入排序,則是找個合適的位置,插入,具體怎麼插入,怎麼移動。從這方面思考。

排序演算法(三)簡單選擇排序和直接插入排序

選擇排序的基本思想是每一趟在n i 1 i 1,2,n 1 個記錄中選取關鍵字最小的記錄作為有序序列的第i個記錄。簡單選擇排序法 selection sort 就是通過n i次關鍵字間的比較,從n i 1個記錄中選出關鍵字最小的記錄,並和第i 1 i n 個記錄交換之。對順序表l作簡單選擇排序 vo...

簡單排序 氣泡排序 簡單選擇排序 直接插入排序演算法

一.氣泡排序 基本思想 兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄為止。1.正宗的冒泡演算法 function bubblesort arr return arr 2.改進的冒泡演算法 function bubblesort arr return arr 3.複雜度分析 時間複雜度...

直接插入排序和選擇排序

一 直接插入排序 思路 1 用乙個臨時變數存放待排序的數字 2 從陣列前依次遍歷找第乙個比待排序數字大的數字的位置 3 將從待排序的數字位置開始,到找的要插入的數字的位置之間的數字向後挪一位,最後將待排序數字插入到找到的位置 如下 void insert sort int arr,int len f...