python写界面c这算法_插入算法分别从C,java,python三种语言进行书写
真正學懂計算機的人(不只是“編程匠”)都對數學有相當的造詣,既能用科學家的嚴謹思維來求證,也能用工程師的務實手段來解決問題——而這種思維和手段的最佳演繹就是“算法”。
作為一個初級編程人員或者說是一個程序員,算法對其是非常重要的,個人建議,如果你是正在讀相關專業的大學學生,希望能夠接觸一些基本的算法。就算不能熟練掌握,不能夠寫出優美代碼,也需要了解其中思想。因為有可能在以后的某個項目中,你就會用到。這是每個程序員都需要掌握的“內功”。不學,可能就會吃虧。因為,不管在什么時候,算法都是計算機科學領域最重要的基石之一。
小編想到哪里就寫到哪里,也許可能在某些地方表達的不太準確,大神不喜可以評論,但小編有個請求,也不要噴小編。
插入算法總結來說就是將由小到大進行排序或者你也可以進行由大到小進行排序。
基本原理就是,將數組中的第一個數當作是有序數列,將第 i-1個數當作無序數列,將這個有i-1的元素的數組由左至右一次判斷是否比有序數列中的個數大,那就進行交換位置
下面舉一個例子,例如我有一個數組tuple_count = [5,1,4,7,6],我選取這個數組中的第一個數1組成有序數組,tuple_count_first = [5],剩下的組成無序數組tuple_count_second = [1,4,7,6],之后我拿1與5進行比較,5>1,那就1與5進行交換位置,插入到相應的位置。
效率分析
如果目標是把n個元素的序列升序排列,那么采用插入排序存在最好情況和最壞情況如下。
最好情況:序列已經是升序排列了,在這種情況下,需要進行的比較操作需(n-1)次即可。
最壞情況:序列是降序排列,那么此時需要進行的比較共有n(n-1)/2次。
直接插入排序屬于穩定的排序,最壞時間復雜度為O(n^2),最好時間復雜度為O(n),空間復雜度為O(1)。
插入排序的賦值操作是比較操作的次數加上(n-1)次。
因此,插入排序不適合對于數據量比較大的排序應用
寫書寫Java的插入算法:
public static void main(String[] args) {
// TODO Auto-generated method stub
int i,j;
int [] tuple_count = {3,1,5,7,2,4,6,8,10,9};
for (i = 1; i < tuple_count.length; i++) {
// 設置數組中的第2個元素為第一次循環要插入的數據
int temp = tuple_count[i];
j = i - 1;
// 如果要插入的元素小于第j個元素,就將第j個元素向后移
while ((j >= 0) && temp < tuple_count[j]) {
tuple_count[j + 1] = tuple_count[j];
j--;
}
tuple_count[j + 1] = temp;
}
//將排序好的數組打印出來
System.out.println(Arrays.toString(tuple_count));
}
python插入算法:
Ls = [3,1,5,7,2,4,6,8,10,9]
def the_paixu(the_first_tuple):
for i in range(1,len(the_first_tuple)):
#設置數組中的第2個元素為第一次循環要插入的數據
temp = the_first_tuple[i]
j = i-1
#如果要插入的元素小于第j個元素,就將第j個元素向后移
while j>=0 and temp
the_first_tuple[j+1] = the_first_tuple[j]
j = j-1
the_first_tuple[j+1] = temp
if __name__=='__main__':
the_paixu(Ls)
print(Ls)
C語言插入算法:
#include
#define n 8
void main()
{
int num[n] = { 3, 1, 5, 7, 2, 4, 6, 8 };
for (int i = 1; i < n; i++) //n為數組a元素的個數
{
int temp = num[i];
int j = i-1;
while ((j>=0) && (temp
{
num[j+1] = num[j];
j--;
}
num[ j+1 ] = temp;
}
for (int i = 0; i
{
if (i>0)
printf(",");
printf("%d", num[i]);
}
getchar();
}
總結
以上是生活随笔為你收集整理的python写界面c这算法_插入算法分别从C,java,python三种语言进行书写的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html中在线取色器,在线取色器(Col
- 下一篇: php中的会话控制器,php – cod