演算法學習之氣泡排序,6174問題

2021-09-22 10:52:37 字數 1034 閱讀 4907

排序與檢索

資料處理是計算機的強項,包括排序、檢索和統計等。

6174問題

假設你有乙個各位數字互不相同的四位數,把所有數字從大到小排序後得到a,從小到大排序後得到b,然後a-b替換原來這個數,

最終都會得到6174。

例如,從1234出發,依次可以得到4321-1234=3087,8730-378=8352,8532-2358=6174。有趣的是,7641-1467=6174回到了它自己。

輸入乙個n位數,輸出操作序列,直到出現迴圈。

樣例輸入:1234

樣例輸出:1234->3087->8352->6174->6174

分析:兩個問題擺在我們面前:如何得到下乙個數?

如何檢查這個數是否已經出現過?

一一解決。

「氣泡排序」

#include #include

#include

int get_next(int

x) }

}sscanf(s,"%d

",&b);

//字串反轉

for(int i=0;i2;i++)

sscanf(s,"%d

",&a);

return a -b;}//

逐個生成各個數

int num[2000

],count;

intmain()

} if(found)

count++;

}printf("\n

");getch();

return0;

}

氣泡排序

#include #include

#include

int bubble_sort(int

x) }

}sscanf(s,"%d

",&r);

return

r;

}int

main()

演算法學習之氣泡排序,6174問題

排序與檢索 資料處理是計算機的強項,包括排序 檢索和統計等。6174問題 假設你有乙個各位數字互不相同的四位數,把所有數字從大到小排序後得到a,從小到大排序後得到b,然後a b替換原來這個數,最終都會得到6174。例如,從1234出發,依次可以得到4321 1234 3087,8730 378 83...

演算法學習之氣泡排序

基本思想 陣列 6,5,7,3,8,2 按從公升序排列。依次比較相鄰的兩個數,前乙個數比後乙個數大則交換位置,得到最大的數在最後。第一輪比較完後的結果為 5,6,3,7,2,8 第二輪比較得出倒數第二的數字 5,3,6,2,7,8 依次類推 package com.example.demo.othe...

演算法學習之氣泡排序

氣泡排序 bubblesort 迴圈遍歷要排序的元素,依次比較相鄰的兩個元素,如果他們的順序錯誤就把他們交換位置。每一次迴圈遍歷,直到陣列的末尾。因為越大的元素會經過交換到陣列的前端 公升序或降序排列 整個過程就像氣泡最終會上浮到頂端一樣,稱之為 氣泡排序 原理步驟 1 比較相鄰的兩個元素。如果第乙...