演算法的基本步驟:
以2個排序好的陣列m和陣列n為例,i=0和j=0分別為m和n的起始下標。
1.m第乙個元素與n第乙個元素比較,如果m的第乙個元素小於n的第乙個元素值,此時新陣列mn的第乙個元素的值為m[i],下標為[i+j]
2.此時m的下標i+1,與n的第乙個元素繼續比較,如果m的第二元素大於n的第一元素值,此時新陣列mn的第二個元素的值為n[j],下標為[i+j](實際上是i=1,j=0)
3.此時n的下標j+1,重複比較的過程,**示例如下:
package com.sun.www.sort;
/** * 將兩個有序陣列歸併為乙個公升序陣列
* */
public class orderedarraysort {
public int getarraysort(int m,int n){
int im = 0; //陣列m的起始位置,用於陣列m下標計數
int jn = 0;
int mn = new int[m.length + n.length]; //排序後新陣列大小
while(im < m.length && jn
兩個有序陣列合併為乙個有序陣列
思想 先依次比較兩個陣列,按照小的就傳入新的陣列。當這次比較完之後可能有乙個陣列的長度很長,留下一些陣列,然後在新陣列的末尾插入即可。1 class arraysort 2else 1920 後面連個while迴圈是用來保證兩個陣列比較完之後剩下的乙個陣列裡的元素能順利傳入 21 while i a...
將兩個陣列並為乙個有序陣列
將兩個陣列並為乙個有序陣列 include define n 6 陣列列印函式 void print int x printf n 氣泡排序函式 void bubble sort int x 判斷資料的大小順序 int judgment order int x if 1 flag 如果原始資料不是從...
歸併兩個有序陣列
題目 有兩個有序的陣列a1和a2,內存在a1的末尾有足夠多的空餘空間容納a2。請實現乙個函式,把a2中的所有數字插入到a1中並且所有的數字是排序的。解法 從後向前依次比較處理,減少移動次數,提高效率。void sorta1a2 int a1,int length1,int sizeofa1,int ...