陣列排序,返回陣列值在原陣列中的下標(序號)

2021-05-28 02:04:04 字數 523 閱讀 4583

功能:對輸入的陣列進行排序,返回的是,從小到大陣列對應於原陣列的下標(序號) 。比如 1 7 3 2 9  返回:0 3 2 1 4

思想:在函式中動態開闢乙個陣列,用於儲存下標。初始化的時候為0-(n-1)。陣列值在排序的過程中,下標值也跟著排序。最後返回指向下標陣列的指標。

#include

#include

int *sortindex(int a,int n)

for(i=0;i

}void main()

;int *p;

for(int i=0;i<5;i++)

printf("%3d",a[i]);

printf("\n");

p=sortindex(a,5);

for(i=0;i<5;i++)

printf("%3d",p[i]);

printf("\n");

}執行結果:

1  7  3  2  9

0  3  2  1  4

0  3  2  1  4

陣列排序同時返回元素在原陣列中的位置

對陣列中的元素進行排序是非常基礎的問題,從現有的眾多排序演算法中任選一種即可實現。但是如果要求排序後同時返回新的 有序 陣列中每個元素在舊的 未排序 陣列中之原始位置,問題可能就變得有些棘手了。例如假設有乙個陣列如下 2,30,1,5,12,8,6 排序 從小到大 後可得新的陣列如下 1,2,5,6...

JS陣列賦值時,原陣列和新陣列值同時改變

寫 的過程中發現,將原陣列賦值給新陣列時,改變新陣列中物件的屬性,原陣列物件屬性也會隨之改變,後查過資料發現是引用傳遞問題 大佬博主原文章,十分感謝 總結方法 extend語法 extend deep target,object1 objectn deep 可選。boolean型別 指示是否深度合併...

移除陣列中的元素(操作原陣列)

題目 移除陣列 arr 中的所有值與 item 相等的元素,直接在給定的 arr 陣列上進行操作,並將結果返回 輸入 1,2,3,4,2 2 輸出 1,3,4 使用splice 刪除與item相同的值並把陣列索引回退乙個值 i function removewithoutcopy arr,item ...