簡單選擇排序的思想:
簡單選擇排序的基本思想是每一趟在 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...